Java 为值为null的每个字段赋值的方法

Java 为值为null的每个字段赋值的方法,java,Java,如果我有一个有很多字段的对象,其中一部分在开始时是空的,有没有一种方法可以通过给定一个值集合作为输入来分配这些变量而不重复 (if x == null) x = a; 比如: methodAssign(Object o, Collections c) 使用,您可以创建一个方法,并将您的字段名作为键和值传递给对象和hashmap public Object methodAssign(Object object, HashMap<String, Object> fields) {

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

(if x == null) x = a;
比如:

methodAssign(Object o, Collections c)
使用,您可以创建一个方法,并将您的字段名作为键和值传递给对象和hashmap

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;
}
public Object methodAssign(对象对象,HashMap字段){
for(条目:fields.entrySet()){
if(BeanUtils.getProperty(对象,entry.getKey())==null)
setProperty(对象,entry.getKey(),entry.getValue());
}
返回对象;
}
例如:

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

    methodAssign(carToInit, map);
carcartoinit=新车();
HashMap=newHashMap();
地图。添加(“字段”,10);
methodAssign(cartonit,map);

不清楚你在问什么。您能详细说明一下吗?所以您想默认分配给定对象中的所有
null
-字段
o
?在
集合中
存储了这样的默认映射,这些映射为每个
o
s字段映射了一个默认值?没有这样的方法,但是你可以自己写。通过使用反射API,您可以轻松访问对象的字段,只需键入
myObject.getClass()
,即可使用
Class
对象访问许多此类方法。只需使用反射迭代对象的字段,找到
null
s,然后在集合中搜索默认映射,再次使用反射赋值即可。@Zabuza谢谢。我现在使用的是Spring,实体类有相同的方法吗?反射API是标准Java的一部分。您可以在任何对象上调用
getClass()
,我认为使用Java反射API的常规方法,这段代码不会太大,只需要增加几行代码。如果您愿意,这两种变体都值得一提。是否需要添加新库?春天也有类似的情况吗?我现在正在使用spring。spring支持无需添加新库