det*_*erb 5 java immutability javabeans
有没有人知道修改存储在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;
}
}
Run Code Online (Sandbox Code Playgroud)
已经可以将酒店视为bean.value.value
.
我正在寻找是否有现成的说法,bean.value.value = 3
并且基本上有一个相当于的电话bean.setValue(bean.getValue().withValue(3));
.
请注意,实际值对象要复杂得多.
谢谢!
我会尝试为 bean 类创建一个 BeanInfo 类,该类使用 setWriteMethod 指定属性变换器方法。此 write 方法可以获取原始 int 值并从中创建不可变值对象并将其分配给属性字段。