Поиск по сайту:

Java-проект Ломбок


Project Lombok — очень полезный инструмент для Java-проектов, позволяющий сократить шаблонный код.

Постановка задачи

package com.askrakesh.java.manage_boilerplate;

import java.time.LocalDate;

public class Person {

	String firstName;
	String lastName;
	LocalDate dateOfBirth;

	public Person(String firstName, String lastName, LocalDate dateOfBirth) {
		super();
		this.firstName = firstName;
		this.lastName = lastName;
		this.dateOfBirth = dateOfBirth;
	}

	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 LocalDate getDateOfBirth() {
		return dateOfBirth;
	}

	public void setDateOfBirth(LocalDate dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((dateOfBirth == null) ? 0 : dateOfBirth.hashCode());
		result = prime * result + ((firstName == null) ? 0 : firstName.hashCode());
		result = prime * result + ((lastName == null) ? 0 : lastName.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Person other = (Person) obj;
		if (dateOfBirth == null) {
			if (other.dateOfBirth != null)
				return false;
		} else if (!dateOfBirth.equals(other.dateOfBirth))
			return false;
		if (firstName == null) {
			if (other.firstName != null)
				return false;
		} else if (!firstName.equals(other.firstName))
			return false;
		if (lastName == null) {
			if (other.lastName != null)
				return false;
		} else if (!lastName.equals(other.lastName))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Person [firstName=" + firstName + ", lastName=" + lastName + "dateOfBirth=" + dateOfBirth + "]";
	}

}

Класс должен иметь геттер-сеттеры для переменных экземпляра, реализацию методов equals и hashCode, все конструкторы полей и реализацию метода toString. В этом классе пока нет бизнес-логики и даже без нее 80+ строчек кода. Это безумие.

Проект Ломбок

Project Lombok — это библиотека Java, которая автоматически подключается к вашему редактору и инструментам сборки и помогает сократить стандартный код. Давайте сначала посмотрим, как настроить проект Lombok.

Как работает Java Project Lombok?

Lombok имеет различные аннотации, которые можно использовать в нашем коде, который обрабатывается во время компиляции, и соответствующее расширение кода будет происходить на основе используемой аннотации. Lombok только сокращает время просмотра кода, после компиляции байт-код вводится со всей плитой котла. Это помогает сохранить нашу кодовую базу небольшой, чистой и легкой для чтения и обслуживания.

Проект Ломбок Мейвен

Добавить Lombok в свой проект очень просто. Просто добавьте приведенную ниже зависимость в файл pom.xml вашего проекта maven.

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.16.20</version>
</dependency>

Добавление подключаемого модуля Lombok в IDE (Eclipse)

Вот шаги установки для Windows:

  1. Загрузите банку с https://projectlombok.org/download или используйте банку, загруженную из сборки maven.
  2. Выполните команду в терминале: java -jar lombok.jar
  3. Эта команда откроет окно, как показано на рисунке ниже, установит и закроет программу установки, а также перезапустит eclipse.

Взгляд Ломбока в набросках «Затмения»

Взгляд Ломбока на байт-код Java

Аннотации проекта Ломбок

Project Lombok предоставляет множество аннотаций, которые помогают сократить шаблонный код в различных сценариях. Давайте пройдемся по некоторым из них.

Boiler-Plate: слушают ли Java-архитекторы?

Да, они. Вы должны понимать, что в отличие от других языков, Java приложил все усилия для обновления языка, чтобы они не нарушали существующую кодовую базу, которая есть в более старых версиях Java. Это само по себе является огромной задачей и не может быть подорвано. Они уже модифицируют и улучшают возможности вывода типов в развернутом языке. Одной из важных функций, запланированных для Java 10, является определение типа локальной переменной. Хотя эта функция больше связана с добавлением динамической типизации, чем с шаблонным кодом, но управление шаблонным кодом — это небольшая капля в море.

Резюме

Сокращение шаблонного кода помогает улучшить читаемость, меньше кода также означает меньше ошибок. Сегодня Project Lombok широко используется почти во всех крупных организациях. Мы предоставили вам самые полезные функции от Lombok. Надеюсь, вы попробуете. Исходный код: вы можете посетить мою ссылку на Github, чтобы загрузить полный исходный код, используемый в этом руководстве.