Рубрики
Без рубрики

Введение в Ломбок (Ускорение разработки Java)

Привет, ребята, сегодня я расскажу о проекте Ломбок. Этот пост в блоге разделен на 3 части: Int… С тегом java, ломбок.

Привет, ребята, сегодня я расскажу о Проекте Ломбок . Этот пост в блоге разделен на 3 части:

  1. Вступление
  2. Настройка (С использованием IntelliJ idea)
  3. Аннотации к Ломбоку

1. Вступление

Ломбок – это библиотека java, которая помогает сократить шаблонный код. Чтобы вы были более сосредоточены на своем реальном коде. например, простой класс POJO состоит из свойств, геттеров/сеттеров (, конструкторов), поэтому здесь Lombok поможет вам в автоматической генерации геттеров/сеттеров (и конструкторов), просто добавив аннотацию.

2. Установка

  1. Проверьте номер сборки вашей идеи. Перейдите в Справка -> О компании

  2. Скачать плагин Lombok для Idea IntelliJ https://plugins.jetbrains.com/plugin/6317 в соответствии с вашим номером сборки.

  3. Переход Файл -> Настройки -> Введите плагины в текстовое поле поиска в левом верхнем углу.

  4. Теперь нажмите кнопку Установить плагин с диска . и выберите загруженный плагин Lombok.

  5. Теперь вы закончили

В случае, если вы используете eclipse, пожалуйста, обратитесь к Этот пост в Блоге .

3. Аннотации к Ломбоку

В Ломбоке есть много различных типов аннотаций для разных задач. Вы можете просмотреть полный список аннотаций здесь . В этом блоге мы обсудим следующие аннотации.

  1. @Геттер/@Сеттер
  2. @toString и @Equals и хэш-код
  3. @Ноннулл
  4. @noargsconstructor, @Требуемый конструктор и @AllArgsConstructor
  5. @Данные
  6. @Значение
  7. @Строитель
  8. @Очистка

Сначала вам нужно добавить зависимость Lombok в свой путь к классу. Если вы используете maven, добавьте нижеприведенную зависимость в свой pom.xml .

Пользователь Gradle добавит приведенную ниже зависимость в файл build.gradle.

1. @Геттер/@Сеттер

Все знакомы с Геттерами/сеттерами в обычном POJO. Создание геттера/сеттера не является большой задачей, в наши дни IDE достаточно умна и может генерировать их для вас, но это увеличивает ваш LOC, и управление ими может быть немного громоздким. Ломбок поможет вам в создании геттера/сеттера, просто добавив @Getter и @Сеттер . По умолчанию тип сгенерированных методов является общедоступным, но вы можете изменить тип, переопределив свойство значения @Getter/@Setter, которое принимает тип перечисления уровня доступа. Доступные значения перечисления уровня доступа: [ОБЩЕДОСТУПНЫЙ, МОДУЛЬ, ЗАЩИЩЕННЫЙ, ПАКЕТ, ЧАСТНЫЙ, НЕТ]. Если вы установите значение Уровень доступа. НЕТ тогда получатель/установщик не будет сгенерирован.

Вы также можете добавить эти аннотации на уровне класса. Он будет генерировать получатели для всех полей и установщики для всех не окончательных и нестатических полей.

Приведенный выше код эквивалентен

Примечание: @Setter не будет работать с конечными полями.

2. @toString и @Equals и хэш-код

@Строка и @EqualsAndHashCode генерирует toString() , равно (Объектный объект) и Хэш-код() в нашем pojo. По умолчанию @@toString включает имя класса и все нестатические поля. Вы можете указать поля в of свойстве @toString . Вы также можете исключить поля с помощью исключить свойство.

По умолчанию @EqualsAndHashCode включает нестатические и нестационарные поля. Вы можете включить или исключить поля, указав в из и исключить свойство (такое же, как @toString ). У него есть дополнительное свойство, называемое callSuper , которое вызывает реализацию суперкласса hashCode() и equals() . По умолчанию он не вызывает методы суперкласса. Вы можете переопределить его, установив для него значение true .

3. @Ноннулл

Эта аннотация создаст нулевую проверку для любого поля. Его можно использовать с аргументами конструктора, полями или аргументами метода.

Приведенный выше код эквивалентен

4. @noargsconstructor, @Требуемый конструктор и @AllArgsConstructor

@noargsconstructor создаст конструктор по умолчанию. Если ваш класс содержит конечные поля, то будет сгенерирована ошибка компиляции. Поэтому, если вы хотите создать конструктор по умолчанию со значениями по умолчанию для конечных полей, установите force=true @noargsconstructor(сила) .

Приведенный выше код эквивалентен

@requiredargsconstructor создаст конструктор, если ваш класс содержит конечные поля или любое поле, отмеченное @ломбок. Not Null затем он сгенерирует параметризованный конструктор, и эти поля будут добавлены в аргументы конструктора, а в конструкторе будет добавлена проверка на нуль.

Приведенный выше код эквивалентен

@AllArgsConstructor создаст параметризованный конструктор со всеми полями в качестве аргументов конструктора.

Приведенный выше код эквивалентен

Примечание: Если вы хотите создать статический фабричный метод с помощью частного конструктора, то установите статическое имя свойство @xxxconstructor.

Приведенный выше код эквивалентен

5. @Данные

@Data аннотацию можно использовать только с классом, и она охватывает следующие аннотации:

  • @Добытчик
  • @Сеттер
  • @Требуемый конструктор @requiredargsconstructor
  • @Строка
  • @Равный и хэш-код
  • @Значение Приведенный выше код эквивалентен

6. @Значение

@Значение используется для создания неизменяемого POJO. По умолчанию класс и все поля сделаны окончательными, и никакие задатчики не будут сгенерированы. Так же, как @Данные он также генерирует toString() , Хэш-код() и равно() . Если вы не хотите делать поле окончательным, пометьте его @NONFINAL .

7. @Строитель

@Builder используется для создания шаблона API-интерфейса builder. Он генерирует внутренний класс под названием Builder, который предоставляет установщики на основе шаблонов builder. @Единственное число используется с @Builder и действует только с java.util. Список типов. Эта аннотация добавит к методам сумматора один для отдельных элементов, а другой для всей коллекции.

8. @Очистка

@Cleanup помогает автоматически закрыть ресурс. Эта аннотация принимает один параметр в качестве имени метода закрытия. По умолчанию его значение равно закрыть .

Счастливого Кодирования 😀 😀 😀 !!! Если у вас есть какие-либо отзывы, пожалуйста, прокомментируйте их ниже.

Оригинал: “https://dev.to/jeetmp3/introduction-to-lombok-speeding-up-java-development-5add”