http://www.cnblogs.com/javastorm/archive/2012/03/14/2396419.html
自己写的抄的记录,原帖不能
import java.lang.reflect.Field;
public void copyPropertysWithoutNull(Object des, Object src){ //将源拷贝到目的,NULL字段不拷贝(不同类对象,不知道能否,没有深究)
Class<?> clazz = des.getClass();
Field[] srcfields=src.getClass().getDeclaredFields();
for(Field field:srcfields){
if(field.getName().equals("serialVersionUID"))
continue;
Field f;
try {
f = clazz.getDeclaredField(field.getName());
f.setAccessible(true);
field.setAccessible(true);
Object obj = field.get(src);
if(obj!=null)
f.set(des,obj);
}
catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (NoSuchFieldException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace(); }
} //end for
}
本文介绍了一个Java方法,用于实现两个不同对象之间的属性复制,但忽略NULL值。通过反射机制遍历源对象的所有声明字段,并将其非空属性值复制到目标对象相应的字段中。
1万+

被折叠的 条评论
为什么被折叠?



