package cn.veryedu.util;
import java.lang.reflect.Field;
public class BeanUtiles2 {
public void copyProperties(Object source,Object tagert){
Class s =source.getClass();
Class t = tagert.getClass();
Field[] sf=s.getDeclaredFields();
Field f=null;
Field t_f=null;
for(int i=0;i<sf.length;i++){
f=sf[i];
String sname=f.getName(); System.out.println(sname);
t_f=getTagertField( t, sname);
if(t_f==null||!f.getType().equals(t_f.getType())){
continue;
}
else{
//拷贝
CopyPerperties(f,source, t_f, tagert);
}
}
}
public Field getTagertField(Class t,String sname){
Field t_f=null;
try {
t_f=t.getDeclaredField(sname);
} catch (SecurityException e) {
return null;
} catch (NoSuchFieldException e) {
return null;
}
return t_f;
}
public void CopyPerperties(Field f,Object source,Field t_f,Object tagert){
f.setAccessible(true);
t_f.setAccessible(true);
try {
Object value=f.get(source);
t_f.set(tagert, value);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
BeanUtils反射简单 参考工程Test_java
最新推荐文章于 2022-11-26 18:31:38 发布