首页 > 代码库 > 利用反射 复制一个对象
利用反射 复制一个对象
public static Object copy(Object obj) throws Exception{
Class<?> classType = obj.getClass();
// 利用无参构造一个对象
Object copyOj = classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
// 获取源对象的属性数组
Field[] fields = classType.getDeclaredFields();
// 遍历数组 进行赋值
for (Field f :fields){
String fieldName = f.getName();
String fristChar = fieldName.substring(0,1).toUpperCase();
String setMethodName ="set"+fristChar+fieldName.substring(1);
String getMethodName = "get"+fristChar+fieldName.substring(1);
Method setMethod = classType.getDeclaredMethod(setMethodName, new Class[]{f.getType()});
Method getMethod = classType.getDeclaredMethod(getMethodName, new Class[]{});
Object result = getMethod.invoke(obj);
setMethod.invoke(copyOj, new Object[]{result});
}
return copyOj;
}
利用反射 复制一个对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。