Краткое резюме
Проект Lombok – это библиотека java, которая помогает разработчику создавать шаблонный код, такой как методы “получения” и “установки” для простых старых объектов Java (POJO). Просто добавив библиотеку Lombok в вашу ИДЕЮ и путь сборки, библиотека Lombok автоматически сгенерирует байт-код Java в соответствии с аннотациями в файлы.class.
В этом посте основное внимание будет уделено тому, как использовать аннотации @Getter и @Setter поверх атрибутов-членов класса для создания методов мутатора и доступа для этих полей. В этом посте также будет описано, как определить уровни доступа для методов мутатора и доступа.
Требования
Следующий список определяет технологии и библиотеки, которые я использовал для реализации примера кода:
Несколько Сообщений
Это будет частью серии из нескольких частей о том, как использовать библиотеку java Lombok для автоматической генерации методов получения и установки для классов Java.
- Как генерировать Java-геттеры и сеттеры с помощью Ломбока (Часть 1)
- Как генерировать Java-геттеры и сеттеры с помощью Ломбока (Часть 2)
Вступление
Вы можете аннотировать любое поле с помощью @Getter и/или @Setter, и библиотека Lombok создаст метод доступа и мутатора для этого конкретного атрибута элемента. Это позволяет вам быть более конкретным, для каких полей вам требуются методы доступа или мутатора, и даже иметь возможность указывать модификаторы доступа Java для конкретных методов.
Модификаторы доступа Java определяют область действия (доступность) атрибутов членов, методов, конструкторов и классов. В Java существует 4 типа модификаторов доступа, а именно: частные, стандартные, защищенные и общедоступные.
- Модификатор public access указывает, что к элементу и/или методу можно получить доступ из любого места.
- Модификатор защищенный доступ указывает, что доступ к элементу и/или методу возможен только в пределах его собственного пакета (как в случае с пакетом-private) и, кроме того, подклассом его класса в другом пакете.
- Модификатор доступа по умолчанию (пакет – закрытый или модификатор не указан) указывает, что элемент и/или метод видны только в его собственном пакете.
- Модификатор private access указывает, что доступ к элементу и/или методу возможен только в его собственном классе.
Пример
Получение и Настройка полей с уровнями доступа
Можно указать уровень доступа для аннотаций @Getter и/или @Setter, чтобы автоматически генерировать методы доступа и мутатора с соответствующими модификаторами доступа Java. Это позволяет вам контролировать доступность методов с помощью библиотеки Ломбока.
Созданный метод доступа/мутатора будет общедоступным, если вы явно не укажете Уровень доступа как часть аннотации. Приведенный ниже пример иллюстрирует использование уровней доступа для указания модификатора доступа Java для каждого метода.
Вы всегда можете вручную отключить генерацию геттера/сеттера для любого поля, используя специальный уровень доступа. НЕТ уровня доступа.
В следующей таблице показано, как уровень доступа Lombok будет сопоставлен модификатору доступа Java, который будет использоваться для методов доступа и мутатора.
Уровень доступа. частный | частный |
Уровень доступа. защищенный | защищенный |
Уровень доступа. общественный | общественный |
Уровень доступа. пакет | по умолчанию |
Уровень доступа. модуль | по умолчанию |
Уровень доступа. никто | Метод Не Сгенерирован!!! |
не указан | общественный |
Вы должны скомпилировать класс Student, используя команду “javac” в терминале. Для успешного выполнения команды вы должны убедиться, что файл Jar Lombok и Student.java файл находится в том же каталоге, из которого вы выполняете команду. После того, как класс ученика будет скомпилирован, вы должны разобрать файл класса Java ученика, используя команду “javap”.
$ javac -cp lombok.jar Student.java $ javap Student.class
Команда javap распечатывает пакет, защищенные и общедоступные поля и методы переданного ей класса. Команда javap выводит свои выходные данные в стандартный вывод. Поэтому атрибуты частного члена класса Student не распечатываются, но теперь можно увидеть, как для каждого из нестатических частных членов класса был создан метод получения и установки, в зависимости от уровня доступа, который был установлен как часть аннотации.
Итак, основываясь на примере, ниже приведены причины, по которым ломбок создал методы с различными модификаторами доступа java:
Атрибут участника: идентификатор Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод мутатора является частным, потому что Уровень доступа был установлен на ЧАСТНЫЙ.
Атрибут члена: Имя Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод мутатора защищен, потому что Уровень доступа был установлен на ЗАЩИЩЕННЫЙ. (См. строку 5)
Атрибут члена: фамилия Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод мутатора является общедоступным, потому что Уровень доступа был установлен на ОБЩЕДОСТУПНЫЙ. (См. строку 7)
Атрибут участника: пол Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод мутатора является “стандартным”, поскольку Уровень доступа был установлен на ПАКЕТ. (См. строку 9)
Атрибут участника: Дата рождения Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод мутатора “по умолчанию”, потому что Уровень доступа был установлен на МОДУЛЬ. (См. строку 11)
Атрибут участника: контактный адрес электронной почты Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод мутатора не генерируется, так как Уровень доступа был установлен равным НУЛЮ.
Атрибут члена: это Первый Год Метод доступа является общедоступным, поскольку Уровень доступа не был указан. Метод доступа является общедоступным, поскольку Уровень доступа не был указан.
Резюме
В этом посте показан еще один пример того, как использовать библиотеку Ломбока вместе с аннотациями @Getter и @Setter для создания методов. Далее было показано, как указать ожидаемый модификатор доступа java для каждого из сгенерированных методов. В следующем посте серии будет показано, как использовать конфигурацию lombok для изменения способа создания методов.
Оригинал: “https://dev.to/code2bits/how-to-generate-java-getters-and-setters-with-lombok-part-2-57h6”