使用构建器模式
使用 Joshua Bloch 在其《Effective Java 2nd Edition 》一书中描述的构建器模式。您可以在http://www.javaspecialists.eu/archive/Issue163.html中找到相同的示例
特别注意这一行:
NutritionFacts locoCola = new NutritionFacts.Builder(240, 8) // Mandatory
.sodium(30) // Optional
.carbohydrate(28) // Optional
.build();
使用 BeansUtils.populate
其他方法是使用org.apache.commons.beanutils.BeanUtils.populate(Object, Map)
Apache Commons BeansUtils中的方法。在这种情况下,您需要一个映射来存储对象的属性。
代码:
public static void main(String[] args) throws Exception {
Map<String, Object> map = new HashMap<>();
map.put("servingSize", 10);
map.put("servings", 2);
map.put("calories", 1000);
map.put("fat", 1);
// Create the object
NutritionFacts bean = new NutritionFacts();
// Populate with the map properties
BeanUtils.populate(bean, map);
System.out.println(ToStringBuilder.reflectionToString(bean,
ToStringStyle.MULTI_LINE_STYLE));
}
输出:
NutritionFacts@188d2ae[
servingSize=10
servings=2
calories=1000
fat=1
sodium=<null>
carbohydrate=<null>
]