Record — это компактный способ создания классов для хранения данных. Они появились в Java 16 и позволяют минимизировать код, генерируя за вас:
- Конструктор,
- Геттеры,
- Методы
toString, equals и hashCode. 📌 Пример создания Record:
public record Person(String name, int age) { }
Этот код создаёт immutable класс с полями
name и age. Использовать его просто:
Person person = new Person("Alice", 25);
System.out.println(person.name()); // Alice
System.out.println(person); // Person[name=Alice, age=25]
🔗 Особенности Record:
1️⃣ Поля всегда
final и неизменяемы. 2️⃣ Record нельзя наследовать или быть родителем.
3️⃣ Можно добавлять свои методы и проверки.
📌 Пример добавления логики:
public record Person(String name, int age) {
public Person {
if (age < 0) {
throw new IllegalArgumentException("Возраст не может быть отрицательным.");
}
}
}
✨ Когда использовать?
- DTO, VO, ключи в коллекциях, и везде, где важна простота и неизменяемость.
#Java #record
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19❤1
Record в Java?Record – это новый тип класса, который появился в Java 14 и предназначен для создания неизменяемых объектов с минимальным кодом.• Автоматически создаёт equals(), hashCode() и toString().• Подходит для DTO (Data Transfer Object) и неизменяемых объектов.public record Person(String name, int age) {}
public class Main {
public static void main(String[] args) {
Person person = new Person("Alice", 30);
System.out.println(person); // Person[name=Alice, age=30]
}
}Record, если вам нужен неизменяемый объект с автогенерацией методов.#java #record #java14
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2
java.lang.Record vs Lombok @Value – что лучше?Многие используют Lombok для DTO, но с Java 14 появился
record. Стоит ли переходить?record лучше Lombok?toString(), equals(), hashCode().
// Java Record
public record User(String name, int age) {}
// Lombok
@Value
public class User {
String name;
int age;
}
record, если вам не нужен полный функционал Lombok – код будет чище.#java #record #lombok #bestpractices
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤1🤔1