是否有人知道修改存储在符合JavaBean的对象下的不可变对象的各个属性的任何现有支持?
一个简单的例子:
对于给定的不可变值类和bean对象(不担心这个的侦听器):
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));
的电话。
请注意,实际值对象要复杂得多。
谢谢!
答案 0 :(得分:1)
我会尝试为bean类创建一个BeanInfo类,它使用setWriteMethod指定属性mutator方法。此write方法可以获取原始int值并从中创建不可变值对象,并将其分配给属性字段。