Please open Telegram to view this post
VIEW IN TELEGRAM
😁21👍2💯2
Как вы обычно обновляете одно поле в неизменяемом объекте? Создаёте копию с нужным значением?
Муторно. Lombok умеет делать это просто и элегантно.
🔹 Аннотация @With
Генерирует методы withX(...), которые создают копию объекта с изменённым полем. Подходит для immutable-моделей и паттерна builder. Класс при этом должен быть final (например, через @Value или вручную).
🔹 Пример
@Value
@With
public class User {
String name;
int age;
}
Теперь можно:
User user1 = new User("Alice", 25);
User user2 = user1.withAge(30); // создаётся новый объект с новым ageОбъекты остаются неизменяемыми, но при этом легко "обновляемыми".
🔹 Зачем это нужно
— Удобно при работе с immutable-классами.
— Простой способ "копировать с изменением".
— Чистый, декларативный стиль без boilerplate.
#CoreJava
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1🔥1🥱1