Клас ObjectMapper у Джексоні
ObjectMapper є одним із найважливіших доступних класів Джексон бібліотека. Він використовується для читання та запису даних JSON. Він відповідає за читання даних із файлу POJO або до нього, а також за модель дерева JSON і з неї.
Клас ObjectMapper має такі характеристики:
- Він підтримує розширені концепції, такі як Поліморфізм і Розпізнавання об'єктів.
- Він дуже настроюється для роботи з різними стилями вмісту JSON.
- Працює як фабрика на випередження ObjectReader і ObjectWriter класи.
Клас ObjectMapper оголошується таким чином:
public class ObjectMapper extends ObjectCodec implements Versioned, Serializable
Вкладені класи
У наступній таблиці визначено класи, які розширюють клас ObjectMapper або, можна сказати, вкладені класи класу ObjectMapper.
| Клас | опис |
|---|---|
| DefaultTypeResolverBuilder | Це налаштований TypeResolverBuilder клас, який використовується для отримання конструкторів розв’язувачів типів, з якими ми можемо використовувати 'введення за замовчуванням'. |
| DefaultTyping | Для визначення типу типів використовуються перерахування з методом enableDefaultTyping(). |
Тепер давайте розберемося з полями, конструкторами та методами класу ObjectMapper:
Поля класу ObjectMapper
protected DefaultDeserializationContext _deserializationContext
Це контекстний об’єкт плану, який зберігається для дозволу настроюваних підкласів.
protected DeserializationConfig _deserializationConfig
Це об’єкт конфігурації, який використовується для визначення основних глобальних параметрів процесу десеріалізації.
захищений JsonFactory jsonFactory
Щоб створити екземпляр JsonParser і JsonGenerator, використовується JsonFactory.
protected InjectableValues _injectableValues
Це постачальник, який використовується для введення значень у десеріалізовані POJO.
захищений ConfigOverrides _propertyOverrides
Він використовується для доступу до поточних активних змін конфігурації для кожного типу.
захищений SimpleMixInResolver _mixIns
Це відображення, яке використовується для визначення способу застосування змішаних анотацій. Картографування здійснюється таким чином:
ключ: Введіть, щоб отримати додаткові анотації.
Значення: Тип, який має анотації для 'змішування'
protected Встановити _registeredModuleTypes
Це набір, який визначає набір типів модулів, які були зареєстровані.
protected SerializationConfig _serializationConfig
Це також об’єкт конфігурації, який використовується для визначення основних глобальних налаштувань процесу серіалізації.
захищений ConcurrentHashMap
Це карта, яка використовується для відстеження десеріалізаторів кореневого рівня. Це карта основного рівня.
захищений SerializerFactory _serializerFactory
Це фабрика, яка використовується для створення серіалізаторів.
захищений SubtypeResolver _subtypeResolver
Він використовується для реєстрації підтипів і вирішення їх для супер/підтипів за потреби.
захищений TypeFactory _typeFactory
Це фабрика, яка використовується для створення екземплярів JavaType. Вони необхідні для того, щоб модулі могли додавати додаткові засоби обробки типів.
protected DefaultSerializerProvider _serializerProvider
Це об’єкт, який відповідає за керування доступом до серіалізаторів, які використовуються для серіалізації.
захищений статичний BaseSettings DEFAULT_BASE
Це базові налаштування, які включають значення за замовчуванням, які використовуються для всіх екземплярів ObjectMapper.
Конструктори класу ObjectMapper
Існують такі конструктори класу ObjectMapper:
| Конструктор | опис |
|---|---|
| ObjectMapper() | Це конструктор за замовчуванням, який використовується для створення екземпляра, який використовує за замовчуванням JsonFactory, SerializerProvider, і BeanSerializerFactory. |
| ObjectMapper (фабрика JsonFactory) | Він використовується для створення екземпляра, який використовує даний JsonFactory. Даний JsonFactory використовується для створення JsonParsers та/або JsonGenerators. |
| ObjectMapper (фабрика JsonFactory, SerializerProvider provider1, DeserializerProvider provider2) | Він використовується для створення екземпляра, який використовує дане JsonFactory, SerializerProvider, і DeserializerProvider. Даний JsonFactory використовується для створення JsonParsers та/або JsonGenerators. |
| захищений ObjectMapper (відповідач ObjectMapper) | Це конструктор копіювання для підтримки copy(). |
Методи класу ObjectMapper
Клас ObjectMapper визначає такі методи:
| метод | Тип повернення | опис |
|---|---|---|
| _checkInvalidCopy(клас exp) | недійсний | Використовується для перевірки недійсної копії. |
| _configAndWriteValue(JsonGenerator g, значення об’єкта) | недійсний | Він використовується для налаштування генератора, коли це необхідно, а потім для виконання функції запису. |
| _convert(Object fromValue, JavaType toValueType) | Об'єкт | Він використовується для отримання фактичної реалізації перетворення. Тут методи читання та запису не використовуються для коду. |
| _initForReading(JsonParser p) | JsonToken | Він використовується для перевірки того, чи готовий даний синтаксичний аналізатор до читання вмісту для зв’язування даних чи ні. |
| _findRootDeserializer(DeserializationContext ctxt, JavaType valueType) | JsonDeserializer | Для переданого значення кореневого рівня, якщо ми хочемо знайти десеріалізатор, ми використовуємо цей метод. |
| _newReader(конфігурація DeserializationConfig) Подібний метод:
| ObjectReader | Це заводський метод, тобто використовується для отримання екземплярів ObjectReader належного підтипу. Щоб використовувати цей метод, необхідно, щоб підкласи мали заміну. |
| _newWriter(конфігурація SerializationConfig) Подібні методи:
| ObjectWriter | Це заводський метод, тобто використовується для отримання екземплярів ObjectWriter належного підтипу. Щоб використовувати цей метод, необхідно, щоб підкласи мали заміну. |
| _readValue(DeserializationConfig cfg, JsonParser p, JavaType valueType) | Об'єкт | Він використовується для отримання об’єкта, який визначає операцію читання значення та зв’язування. |
| _serializerProvider(конфігурація SerializationConfig) | DefaultSerializerProvider | Це замінений допоміжний метод, який використовується для створення SerializerProvider. |
| acceptJsonFormatVisitor(тип класу, відвідувач JsonFormatVisitorWrapper) Подібний метод:
| недійсний недійсний | Якщо ми хочемо відвідати ієрархію типів певного типу з указаним відвідувачем, ми використовуємо цей метод. |
| addHandler(DeserializationProblemHandler h) | ObjectMapper | Щоб вирішити вказані проблеми під час десеріалізації, ми використовуємо вказаний DeserializationProblemHandler, а щоб додати обробник, ми використовуємо цей метод. |
| addMixIn(Class target, Class mixinSource) | ObjectMapper | Для того, щоб використовувати додаткову анотацію для визначеного класу доповнення або інтерфейсу, ми використовуємо цей метод, щоб додати його. |
| canDeserialize (тип JavaType) | Логічний | Він використовується, щоб перевірити, чи може картограф десеріалізувати об’єкт заданого типу чи ні. |
| canDeserialize(тип JavaType, причина AtomicReference) | Логічний | Він схожий на попередній спосіб. Єдина відмінність полягає в тому, що він може повертати викиданий елемент, який був викинутий під час побудови серіалізатора. За допомогою метання можна з’ясувати справжню проблему. |
| canSerialize (тип класу) | Логічний | Він використовується, щоб перевірити, чи може картограф серіалізувати об’єкт заданого типу чи ні. |
| canSerialize(тип класу, причина AtomicReference) | Логічний | Він схожий на попередній спосіб. Єдина відмінність полягає в тому, що він може повертати викиданий елемент, який був викинутий під час побудови серіалізатора. За допомогою метання можна з’ясувати справжню проблему. |
| clearProblemHandlers() | ObjectMapper | Це один із методів, який використовується для видалення всіх зареєстрованих екземплярів DeserializationProblemHandlers із програми відображення. |
| configure(DeserializationFeature f, логічний стан) аналогічні методи:
| ObjectMapper | Він використовується для зміни стану увімкнення/вимкнення функції десеріалізації, генератора Json, JsonParser, Mapper або функції серіалізації для засобу відображення об’єктів, екземплярів генератора, екземплярів синтаксичного аналізатора, екземпляра відтворювача або засобу відображення об’єктів. |
| constructType(Тип t) | JavaType | Якщо ми хочемо сконструювати JavaType із заданого типу без явного контексту, ми використовуємо цей метод. |
| convertValue(Object fromValue, Class toValueType) Подібні методи:
| Т | Якщо ми хочемо виконати двоетапне перетворення заданого значення в екземпляр заданого типу значення, ми використовуємо метод converValue(). |
| createArrayNode() | ArrayNode | Він використовується для створення ArrayNode. |
| defaultClassIntrospector() | ClassIntrospector | Якщо ми хочемо використовувати стандартний ClassIntrospector, ми використовуємо цей допоміжний метод Overridable для його створення. |
| вимкнути (функція DeserializationFeature) Подібні методи:
| ObjectMapper | Він використовується для вимкнення заданого DeserializationConfig, JsonGenerator.Features для екземплярів синтаксичного аналізатора, JsonParser.Features для екземплярів синтаксичного аналізатора засобу відображення об’єктів. |
| disableDefaultTyping() | ObjectMapper | Багато разів нам потрібно вимкнути автоматичне включення інформації про тип, і для цього ми використовуємо цей метод. |
увімкнути (функція DeserializationFeature)
| ObjectMapper | Він використовується для ввімкнення заданого DeserializationConfig, JsonGenerator.Features для екземплярів парсера, JsonParser.Features для екземплярів парсера відображувача об’єктів. |
| enableDefaultTyping() Подібні методи:
| ObjectMapper | Щоб використовувати автоматичне включення інформації про тип для десеріалізації поліморфних типів, ми використовуємо цей метод, щоб увімкнути це. |
| findAndRegisterModules() | ObjectMapper | Він схожий на метод mapper.registerModules(mapper.findModules()). |
| findModules() Подібні методи:
| Список | Він використовується для пошуку доступних методів. Метод використовує засіб JDK ServiceLoader із наданим модулем SPI. |
| getDateFormat() | Формат дати | Він використовується для отримання формату дати. |
| getDeserializationConfig() | DeserializationConfig | Він використовується для отримання спільного об’єкта DeserializationConfig за умовчанням. Повернений об’єкт визначає параметри конфігурації для десеріалізації. |
| getDeserializationContext() | Контекст десеріалізації | Він використовується для отримання поточного контексту десеріалізації. |
| getFactory() | JsonFactory | Якщо картографу потрібно створити аналізатор і генератори Json, йому потрібна фабрика json, і щоб отримати це, ми використовуємо метод getFactory(). |
| getInjectableValues() | InjectableValues | Він використовується для отримання ін'єкційних значень. |
| getJsonFactory() | JsonFactory | Це застарілий метод отримання фабрики Json. |
| getNodeFactory() | JsonNodeFactory | Він використовується для отримання JsonNodeFactory, який використовується картографом під час безпосереднього створення кореневих екземплярів JsonNode для дерев. |
| getPropertyNamingStrategy() | PropertyNamingStrategy | Як випливає з назви, він використовується для стратегії іменування власності. |
| getSerializationConfig() | SerializationConfig | Він використовується для отримання спільного об’єкта SerializationConfig за умовчанням. Повернений об’єкт визначає параметри конфігурації для серіалізації. |
| getSerializerFactory() | SerializerFactory | Він використовується для отримання поточного SerializerFactory. |
| getSerializerProvider() | SerializerProvider | Це засіб доступу для фабрики, який використовується для створення екземплярів шляхом виклику DefaultSerializerProvider.createInstance(SerializationConfig, SerializerFactory). |
| getSerializerProviderInstance() | SerializerProvider | Це засіб доступу, який використовується для створення та повернення екземпляра SerializerProvider, який ми можемо використовувати для доступу до серіалізаторів. |
| getSubtypeResolver() | SubtypeResolver | Він використовується для доступу до підтипу, який використовується. |
| getTypeFactory() | TypeFactory | Це засіб доступу, який використовується для отримання екземпляра поточного налаштованого TypeFactory. |
| getVisibilityChecker() | VisibilityChecker | Він використовується для доступу до налаштованого засобу перевірки видимості. |
| isEnabled(DeserializationFeature f) Подібні методи:
| Логічний | Метод isEnable() і його варіанти використовуються для перевірки того, чи ввімкнено певну функцію десеріалізації, JsonFactory, JsonGenerator, JsonParser, Mapper або Serialization. |
| mixInCount() | внутр | Він використовується для отримання підрахунку mixIn. |
| читач() Подібні методи:
| ObjectReader | Метод reader() і його варіації є фабричними методами, які використовуються для створення екземпляра ObjectReader. Виходячи з вимоги, ми можемо передати варіант кодування Base64 для двійкових даних у кодуванні Base64, атрибутів за замовчуванням, увімкнених функцій, ін’єкційних значень, JsonNodeFactory для побудови дерев JSON. |
| readerFor (тип класу) | ObjectReader | Це фабричний метод, який використовується для створення ObjectReader, що дозволяє виконувати операції читання або оновлення для екземплярів зазначеного типу. |
| readerFor (тип JavaType) | ObjectReader | Це заводський метод, який використовується для створення ObjectReader, що дозволяє виконувати операції читання або оновлення для екземплярів указаного JavaType. |
| readerFor(тип TypeReference) | ObjectReader | Це фабричний метод, який використовується для створення ObjectReader, що дозволяє виконувати операції читання або оновлення для екземплярів даного TypeReference. |
| readerForUpdating(Object valueToUpdate) | ObjectReader | Це фабричний метод, який використовується для створення ObjectReader, що дозволяє виконувати операції оновлення для даного об’єкта. |
| readerWithView (перегляд класу) | ObjectReader | Це фабричний метод, який використовується для створення ObjectReader, що дозволяє десеріалізація об'єктів із заданим видом JSON. |
readTree(byte[] content)
| JsonNode АБО Т | ReadTree() та його варіації використовуються для десеріалізації вмісту JSON у вигляді дерева, вираженого за допомогою набору екземплярів JsonNode. |
| readValue(byte[] src, Class valueType) Подібні методи
| Т АБО Ітератор відображення | ReadValue() і його варіації використовуються для десеріалізації вмісту JSON
|
| readValues(JsonParser p, Class valueType) Подібні методи:
| Ітератор відображення | ReadValues() та його варіації використовуються для читання послідовності об’єктів із потоку аналізатора. |
| registerModule(модуль модуля) Подібні методи:
| ObjectMapper | RegisterModule() та його варіації використовуються для реєстрації модуля, який має можливість розширювати функціональні можливості, надані картографом. |
| registerSubtypes(NamedType... типи) | недійсний | Він використовується для реєстрації даного класу як підтипу. Роблячи це, розділення на основі імені типу може зв’язувати супертипи з підтипами. |
| setAnnotationIntrospector(AnnotationIntrospector ai) | ObjectMapper | Він використовується для налаштування AnnotationIntrospector, який використовується примірником картографа як для серіалізації, так і для десеріалізації. |
| setAnnotationIntrospectors(AnnotationIntrospector serializerAI, AnnotationIntrospector deserializerAI) | ObjectMapper | Він використовується для зміни екземпляра AnnotationIntrospector, який використовується поточним екземпляром картографа для серіалізації та десеріалізації. |
| setBase64Variant(Base64Variant v) | ObjectMapper | Він використовується для налаштування стандартного варіанту Base64Variant, який використовуватиметься серіалізаторами та десеріалізаторами byte[]. |
| setConfig(DeserializationConfig config) | ObjectMapper | Щоб виконати перевизначення основного об’єкта DeserializationConfig, ми використовуємо цей метод. |
| setConfig(SerializationConfig config) | ObjectMapper | Щоб виконати перевизначення основного об’єкта SerializationConfig, який має параметри конфігурації, що стосуються серіалізації, ми використовуємо цей метод. |
| setDateFormat(DateFormat dateFormat) | ObjectMapper | Він використовується для налаштування формату дати за замовчуванням для використання його під час серіалізації значень часу як рядків або десеріалізації з рядків JSON. |
| setDefaultPrettyPrinter(PrettyPrinter pp) | ObjectMapper | Він використовується для вказівки PrettyPrinter для його використання, коли ввімкнено «дефолтний друк». |
| setDefaultTyping(типизатор TypeResolverBuilder) | ObjectMapper | Він використовується для автоматичного включення інформації про тип. |
| setHandlerInstantiator(HandlerInstantiator привіт) | Об'єкт | Він використовується для налаштування HandlerInstantiator для створення екземплярів обробників. |
| setFilterProvider(FilterProvider filterProvider) | ObjectMapper | Він використовується для налаштування поточного відтворювача на використання вказаного FilterProvider для зіставлення ідентифікаторів фільтрів із фактичними екземплярами фільтрів. |
| setInjectableValues(InjectableValues injectableValues) | ObjectMapper | Він використовується для налаштування InjectableValues, який використовується для пошуку значень для введення. |
| setLocale(Local l) | ObjectMapper | Він використовується для заміни стандартної мови для форматування. |
| setMixInResolver(ClassIntrospector.MixInResolver resolve) | ObjectMapper | Ми використовуємо цей метод, щоб вказати даний резолвер, щоб знайти змішані класи для використання, замінюючи безпосередньо додані відображення. |
| setMixInAnnotations(Карта | недійсний | Це застарілий метод для визначення змішаної анотації. |
| setNodeFactory(JsonNodeFactory f) | ObjectMapper | Він використовується для визначення JsonNodeFactory для створення вузлів дерева кореневого рівня. |
| setMixIns(Карта | ObjectMapper | Він використовується для визначення змішаних анотацій для використання для розширення анотацій, які мають оброблювані класи. |
| setPropertyInclusion(JsonInclude.Value incl) | ObjectMapper | Він використовується для встановлення стандартної стратегії включення властивості POJO для серіалізації. |
| setPropertyNamingStrategy(PropertyNamingStrategy s) | ObjectMapper | Він використовується для встановлення користувацької стратегії іменування властивостей. |
| setSerializerFactory(SerializerFactory f) | ObjectMapper | Він використовується для встановлення певного SerializerFactory для створення серіалізаторів (компонентів). |
| setSerializerProvider(DefaultSerializerProvider p) | ObjectMapper | Він використовується для налаштування екземпляра SerializerProvider «плану» для використання його як основи для фактичних екземплярів постачальників, які використовуватимуться для обробки кешування екземплярів JsonSerializer. |
| setSubtypeResolver(SubtypeResolver str) | ObjectMapper | Він використовується, щоб настроїти настроюваний розпізнавач підтипів для використання. |
| setTimeZone(TimeZone tz) | ObjectMapper | Він використовується для заміни часового поясу за замовчуванням для форматування. |
| setTypeFactory(TypeFactory f) | ObjectMapper | Він використовується для заміни екземпляра TypeFactory, який використовується поточним картографом. |
setVisibility(PropertyAccessor forMethod, JsonAutoDetect.Visibility видимість)
| ObjectMapper | Функція setVisibility() і її варіанти використовуються для встановлення налаштованого VisibilityChecker. Повернений екземпляр ObjectMapper використовується для перевірки того, чи може даний елемент властивості бути автоматично виявлений чи ні. |
| treeAsTokens(TreeNode n) | JsonParser | Він використовується для створення JsonParser з представлення дерева JSON. |
| treeToValue(TreeNode n, Class valueType) | Т | Він використовується для зв’язування даних, які містить дерево JSON, із певним типом значення. |
| версія() | Версія | Він використовується для отримання інформації про версію, що зберігається в jar, що містить цей клас, і для читання з нього. |
письменник()
| ObjectWriter | Write() та його варіації використовуються для створення ObjectWriter із налаштуваннями за замовчуванням, заданим варіантом кодування Base64 для бінарних даних, кодованих за допомогою Base64, деталями екранування символів для виведення, атрибутами за замовчуванням, DateFormat, постачальником фільтрів, об’єктом схеми для JsonGenerator, який використовується для запису вмісту, гарний принтер для відступу або ввімкнена функція. |
| writerFor(кореневий тип класу) - | ObjectWriter | Він використовується для створення ObjectWriter для серіалізації об’єктів, використовуючи вказаний кореневий тип замість фактичного типу значення значення. |
| writerFor(JavaType rootType) | ObjectWriter | Він використовується для створення ObjectWriter для серіалізації об’єктів, використовуючи вказаний кореневий тип замість фактичного типу значення значення. |
| writerFor(TypeReference rootType) | ObjectWriter | Він використовується для створення ObjectWriter для серіалізації об’єктів, використовуючи вказаний кореневий тип замість фактичного типу значення значення. |
| writerWithDefaultPrettyPrinter() | ObjectWriter | Це фабричний метод, який використовується для побудови ObjectWriter для серіалізації об’єктів за допомогою стандартного принтера для відступів. |
writerWithType (кореневий тип класу)
| ObjectWriter | Ці методи знецінюються, і замість них ми використовуємо метод writerFor(TypeReference). |
| writerWithView(Class serializationView) | ObjectWriter | Це фабричний метод, який використовується для створення ObjectWriter для серіалізації об’єктів за допомогою вказаного представлення JSON. |
| writeTree(JsonGenerator jgen, JsonNode rootNode) | недійсний | Він використовується для серіалізації наданого дерева JSON за допомогою заданого JsonGenerator. |
| writeValue(File resultFile, Object value) | недійсний | Він використовується для серіалізації значення Java як вихідних даних JSON і запису його в заданий файл. |
| writeValue(JsonGenerator g, значення об’єкта). | недійсний | Він використовується для серіалізації значень Java як вихідних даних JSON за допомогою заданого JsonGenerator. |
| writeValue(OutputStream out, Object value) | недійсний | Він використовується для серіалізації значення Java як вихідних даних JSON за допомогою даного OutputStream. |
| writeValue(Writer w, значення об’єкта) | недійсний | Він використовується для серіалізації значень Java як вихідних даних JSON за допомогою заданого Письменник. |
| writeValueAsBytes(значення об'єкта) | байт[] | Він використовується для серіалізації значень Java у вигляді масиву байтів. |
| writeValueAsString(значення об'єкта) | Рядок | Він використовується для серіалізації значень Java у вигляді рядка. |
JacksonExample.java
//import required classes and package if any package javaTpoint.Jackson; import java.io.IOException; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; //create class JacksonExample to understand implementation of Jackson public class JacksonExample { // main() method start public static void main(String args[]){ // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create a JSON string of employee details to deserilized object String stdString = '{
'students' : [
{
'stdId':'001',
'course':'MCA','+'
'firstName':'Nicholas',
'lastName':'Clemens',
'preferredFullName':'Nicholas Clemens','+'
'enrol':'S010',
'region':'indian',
'phoneNumber':'408-1234567',
'emailAddress''+':'[email protected]'
},
{
'stdId':'002',
'course':'BCA','+'
'firstName':'Sharon',
'lastName':'Lorenz',
'preferredFullName':'Sharon Lorenz','+'
'enrol':'S011',
'region':'indian',
'phoneNumber':'408-1111111',
'emailAddress''+':'[email protected]'
},
{
'stdId':'003',
'course':'Btech','+'
'firstName':'Brittany',
'lastName':'Hart',
'preferredFullName':'Brittany Hart',
''+'enrol':'S012',
'region':'indian',
'phoneNumber':'408-2222222',
'emailAddress':'[email protected]'
}
]
}'; try{ // use ObjectMapper for mapping JSON to Student Students students = mapper.readValue(stdString, Students.class); // print students System.out.println(students); // serialize students into json string stdString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(students); System.out.println(stdString); }catch (JsonParseException e) { e.printStackTrace(); }catch (JsonMappingException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); } } } //create Students class class Students { public List students; // getter and setter public List getStudent() { return students; } public void setStudent(List students) { this.students = students; } } class Student { // declare variables private String stdId; private String course; private String firstName; private String lastName; private String preferredFullName; private String enrol; private String region; private String phoneNumber; private String emailAddress; public Student(){ } // getter/setters for all variables public String getStdId() { return stdId; } public void setStdId(String stdId) { this.stdId = stdId; } public String getCourse() { return course; } public void getCourse(String course) { this.course = course; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getPreferredFullName() { return preferredFullName; } public void setPreferredFullName(String preferredFullName) { this.preferredFullName = preferredFullName; } public String getEnrol() { return enrol; } public void setEnrol(String enrol) { this.enrol = enrol; } public String getRegion() { return region; } public void setRegion(String region) { this.region = region; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getEmailAddress() { return emailAddress; } public void setEmailAddress(String emailAddress) { this.emailAddress = emailAddress; } public String toString(){ return 'Employee [ Student Id: '+stdId+', Course: '+course+ '' + ', First Name: '+firstName+ ', Last Name: '+lastName+ '' + ', Name: '+preferredFullName+ ', Enrol No: '+enrol+ '' + ', Region: '+region+ ', Phone Number: '+phoneNumber+ '' + ', Email Address: '+emailAddress+ ' ]'; } } Вихід: