java的对象copy
2016-04-05 09:46
405 查看
/** * 该方法实现对对象的拷贝操作 * @param object * @return * @throws Exception */ public Object copy(Object object) throws Exception { Class<?> classType = object.getClass(); Object objectCopy = classType.getConstructor(new Class[]{}).newInstance(new Object[]{}); //获得对象的所有成员变量 Field[] fields = classType.getDeclaredFields(); for(Field field : fields) { //获取成员变量的名字 String name = field.getName(); //获取成员变量的名字(字段名) //System.out.println(name); //获取get和set方法的名字 String firstLetter = name.substring(0,1).toUpperCase(); //将属性的首字母转换为大写 String getMethodName = "get" + firstLetter + name.substring(1); String setMethodName = "set" + firstLetter + name.substring(1); //System.out.println(getMethodName + "," + setMethodName); //获取方法对象 Method getMethod = classType.getMethod(getMethodName, new Class[]{}); Method setMethod = classType.getMethod(setMethodName, new Class[]{field.getType()});//注意set方法需要传入参数类型 //调用get方法获取旧的对象的值 Object value = getMethod.invoke(object, new Object[]{}); //调用set方法将这个值复制到新的对象中去 setMethod.invoke(objectCopy, new Object[]{value}); } return objectCopy; }
相关文章推荐
- Eclipse快捷键
- eclipse打maven的jar包连依赖jar一起打包方法
- java变量所占字节数及取值范围
- 【Java】Integer的常量池
- Eclipse--Java注释模板设置详解
- MyEclipse的 at com.genuitec.eclipse.ast.deploy.core.Deployment.<init>错误解决办法
- Java设计模式:桥接模式
- spring 事务管理
- 如何在MyEclipse中反编译class文件
- FileReader用法
- Java学习·静态代码块
- 构造方法与非构造方法的比较
- java的一些缓存机制
- springMVC4(12)复杂对象和集合类型入参绑定
- java的System.getProperty()方法可以获取的值
- java运行环境的构建,命令台的基本操作。
- Eclipse下的java工程目录
- java学习二:类
- java中为什么byte的取值范围为-128~127
- Java之I/O流