tgoop.com/BookJava/3856
Create:
Last Update:
Last Update:
🧠 Record (Java 16+) + pattern matching для instanceof (Java 14+) в Java 17+ позволяют писать лаконичный и безопасный код:
📌 Запись DTO с валидацией через компактный конструктор:
public record User(String name, String email) {
public User {
Objects.requireNonNull(name, "name не должен быть null");
if (!email.contains("@")) {
throw new IllegalArgumentException("Неверный email: " + email);
}
}
}
– автоматические
toString(), equals(), hashCode() без лишнего кода.🧠 Проверка и приведение типов в одном выражении:
Object obj = …;
if (obj instanceof User u) {
System.out.println("Привет, " + u.name());
}
– нет лишних кастов, код чище и безопаснее.
💡 Совет: для полей — коллекций или массивов — избегайте поверхностной мутабельности:
public record Team(String name, List<String> members) {
public Team {
members = List.copyOf(members);
}
}
– таким образом
members нельзя изменить извне.⚠️ Антипаттерн: не используйте
public record X(List<String> list) без копирования — рискуете нарушить неизменяемость!👉@BookJava
BY Библиотека Java разработчика

Share with your friend now:
tgoop.com/BookJava/3856
