我想一次更新Java对象的多个字段以执行更新检查。我的想法是这样的:
SomethingValues values = new SomethingValues();
values.name = "abc";
values.amount = 12;
values.weight = 42.2;
...
something.update(values);
替代方案是SomethingValuesBuilder
,但我认为此处不需要构建器所需的其他代码。
如果我会使用setter ......
something.setName("abc"); // would perform check
something.setAmount(12); // would perform check
...
...我需要对每个setter执行检查,而不是只对update
方法中的所有字段执行一次。
有没有比使用附加值对象(something
)更新域对象(values
)更好的主意?
答案 0 :(得分:0)
我通常选择SomeObjectType.update(parameters)
,其中对象负责检查和设置所有参数,并最终抛出IllegalArgumentException
,以防某些参数被接受。通过这种方式,您可以获得更好的可读性和封装性。
答案 1 :(得分:0)
我猜最常用的是Map<String, Object>
,因为它不需要任何额外的类。
示例:
Beanutils.populate(Object bean, Map properties)
的BeanWrapper
技术也使用了地图并集成了验证答案 2 :(得分:0)
import org.springframework.beans.BeanUtils;
BeanUtils.copyProperties(source, target);