Person对象p1,p2,将p2中的非空属性赋给p1,如何做?

poly3 2011-12-25 08:51:01
有一个类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 方法公有
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
张某人 2011-12-25
  • 打赏
  • 举报
回复
可不可以,if(p2.xx!=null){p1.xx=p2.xx}
朝花夕拾 2011-12-25
  • 打赏
  • 举报
回复

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


62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧