Кто-нибудь знает о какой-либо существующей поддержке для изменения отдельных свойств неизменяемых объектов, хранящихся в JavaBean-совместимом объекте?
Для тривиального примера:
Для данного класса неизменяемого значения и объекта бина (не беспокоятся об этом слушателей):
public class ValueObject {
private final int value;
public ValueObject(int value) {
this.value = value;
}
public ValueObject withValue(int newValue) {
return new ValueObject(value);
}
}
public class Bean {
private ValueObject value;
public ValueObject getValue() {
return value;
}
public ValueObject setValue(ValueObject value) {
this.value = value;
}
}
Уже можно просматривать недвижимость как bean.value.value
.
Я смотрю, есть ли существующий способ сказать bean.value.value = 3
и, в принципе, есть вызов, эквивалентный bean.setValue(bean.getValue().withValue(3));
.
Обратите внимание, что объект фактического значения значительно сложнее.
Спасибо!