通过Java的反射机制实现对象的拷贝
来源:互联网 发布:oppo网络销售授权书 编辑:程序博客网 时间:2024/05/21 10:55
package com.wxh.reflect2;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * 通过Java的反射机制实现对象的拷贝 * @author Administrator * */public class ObjectCopy {public static Object copy(Object source){//创建一个新的对象(空对象)Object target=null;try {Class clz=source.getClass();//获取源对象的class对象target=clz.newInstance();//源对象必须有空的构造器//获取类中的所有属性Field[] fields=clz.getDeclaredFields();for (Field field : fields) {//获取属性名String fieldName=field.getName();//根据属性名称获取setter/getter方法名String set="set"+fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);String get="get"+fieldName.substring(0,1).toUpperCase()+fieldName.substring(1);//根据方法名称获取方法对象Method method_set=clz.getMethod(set, field.getType());Method method_get=clz.getMethod(get);//执行源对象的get方法,获取返回值Object returnVal=method_get.invoke(source);//执行目标对象的set方法,将源对象方法的返回值作为参数设置给目标对象method_set.invoke(target, returnVal);}} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchMethodException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (InvocationTargetException e) {e.printStackTrace();}return target;}}
注意:创建的JavaBean必须要规范,有空的构造器和set、get方法。
0 0
- 通过Java的反射机制实现对象的拷贝
- Java通过反射实现简单对象的拷贝
- Java反射机制实现对象属性值的拷贝
- 通过JAVA的Serialization机制进行对象的拷贝
- java反射(5)通过反射拷贝对象
- 通过Java的反射机制来Copy一个对象
- 通过Java反射机制构造类的对象
- 通过java反射机制操作对象的属性方法
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子
- Java中的反射机制 一个利用反射进行对象拷贝的例子
- Java中的反射机制(二) 一个利用反射进行对象拷贝的例子
- 通过Java反射机制实现POLO类的设置值
- 通过反射完成不同对象之间的属性拷贝
- 番外 01:Spring IoC 实现原理简析,Java的反射机制,通过类名创建对象
- Java反射实现的Bean拷贝类
- 通过例子了解java的反射机制
- Java深拷贝除了通过实现Cloneable接口,另外还可以通过序列化实现对象的拷贝。
- 通过Java的反射机制创建运行时类的对象并调用其结构
- 完整java开发中JDBC连接数据库代码和步骤
- 修改linux文件权限命令:chmod
- Html的基础格式
- STM串口转tcp实现Mqtt客户端
- 系统提供的简便listview的使用方法
- 通过Java的反射机制实现对象的拷贝
- windows上获取“我的文档”目录
- ios frame、bound和center定义及使用场景总结
- SEL的使用
- 错误积累
- 编译libevent-2.1.6beta
- 浅谈JSON.stringfy语法
- usaco Arithmetic Progressions(看了题解)
- 将自己的app加入到分享列表中,并适配锤子的one step功能