在每个值字段上赋值的方法null

时间:2017-11-15 19:00:34

标签: java

如果我有一个包含许多字段的对象,其中一部分在开始时为空,是否有一种方法可以通过给定一个值集合作为输入来分配这些变量而不重复

(if x == null) x = a;

类似的东西:

methodAssign(Object o, Collections c)

1 个答案:

答案 0 :(得分:1)

使用BeanUtils ,您可以创建一个方法,并使用您的字段名称作为键和值传递您的对象和散列图。

public Object methodAssign(Object object, HashMap<String, Object> fields) {
   for(Entry<String, Object> entry : fields.entrySet()) {
     if(BeanUtils.getProperty(object, entry.getKey()) == null)
         BeanUtils.setProperty(object, entry.getKey(), entry.getValue());
   }
   return object;
}

示例:

   Car carToInit = new Car();
    HashMap<String, Object> map = new HashMap<String, Object>();
    map.add("field", 10);

    methodAssign(carToInit, map);