首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

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

2012-03-09 
Person对象p1,p2,将p2中的非空属性赋给p1,如何做?有一个类Person,里面有30个属性,有一个Person对象p1,30个

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;    } 

热点排行