更新Java对象的多个字段的最佳方法

时间:2011-12-14 21:54:17

标签: java builder

我想一次更新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)更好的主意?

3 个答案:

答案 0 :(得分:0)

我通常选择SomeObjectType.update(parameters),其中对象负责检查和设置所有参数,并最终抛出IllegalArgumentException,以防某些参数被接受。通过这种方式,您可以获得更好的可读性和封装性。

答案 1 :(得分:0)

我猜最常用的是Map<String, Object>,因为它不需要任何额外的类。

示例:

答案 2 :(得分:0)

import org.springframework.beans.BeanUtils;

BeanUtils.copyProperties(source, target);