当前位置: 代码迷 >> J2SE >> Person对象p1,p2,将p2中的非空属性赋给p1,怎么做
  详细解决方案

Person对象p1,p2,将p2中的非空属性赋给p1,怎么做

热度:540   发布时间:2016-04-24 02:05:54.0
Person对象p1,p2,将p2中的非空属性赋给p1,如何做?
有一个类Person,里面有30个属性,有一个Person对象p1,30个属性全部有值,有一个Person对象p2,有10个属性有值,比如p2.name="tom",p2.age=20...
  现在要只把p2里面有值的属性值赋给p1,如将tom,20等赋给p1,p2里birthday属性为空,则p1里的birthday属性值不变,其余属性类似。
  因为属性很多,想用反射和循环来做一个通用的方法,不仅Person类,任何类都能用,具体怎么写?
  Person是一个bean,属性私有,相应的get set 方法公有

------解决方案--------------------
可不可以,if(p2.xx!=null){p1.xx=p2.xx}
------解决方案--------------------
Java code
public <T> T copyAttribute(T t1, T t2) throws IllegalArgumentException, IllegalAccessException {        Class classz = t1.getClass();        Field[] fieldArr = classz.getDeclaredFields();        for(Field  f : fieldArr){            Object value = f.get(t2);            if(value != null){                f.set(t1, value);            }        }                return t1;    }
  相关解决方案