Java反射之复制简单的JavaBean对象
2012-06-22 11:41
603 查看
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * 通过反射机制来复制JavaBean对象 * @author WalkingDog * */ public class Reflect { public static void main(String[] args) throws Exception { Person person = new Person("walkingdog", 20); person.setId(2009324116L); Person personCopy = (Person)new Reflect().copy(person); System.out.println(personCopy.getId() + " " + personCopy.getName() + " " + personCopy.getAge()); } public Object copy(Object object) throws Exception{ //要想使用反射,首先需要获得待处理类或对象所对应的Class对象 //下面是获取Class对象的常用的3种方式 //获得运行时的类 Class<?> classType = object.getClass(); //Class<?> classType = Costomer.class; //Class<?> classType = Class.forName("Costomer"); Constructor<?> constructor = classType.getConstructor(new Class<?>[]{}); Object objectCopy = constructor.newInstance(new Object[]{}); //以上两行代码等价于下面一行代码,newInstance()只能通过无参构造方法建立对象。 //Object objectCopy = classType.newInstance(); Field fields[] = classType.getDeclaredFields(); for(Field field : fields){ String name = field.getName(); String firstLetter = name.substring(0, 1).toUpperCase(); //获得属性的set、get的方法名 String getMethodName = "get" + firstLetter + name.substring(1); String setMethodName = "set" + firstLetter + name.substring(1); Method getMethod = classType.getMethod(getMethodName, new Class<?>[]{}); Method setMethod = classType.getMethod(setMethodName, new Class<?>[]{field.getType()}); //获得copy对象的属性值 Object value = getMethod.invoke(object, new Object[]{}); //设置被copy对象的属性值 setMethod.invoke(objectCopy, value); } return objectCopy; } } //JavaBean class Person{ private Long id; private String name; private int age; //每个JavaBean都应该实现无参构造方法 public Person() {} public Person(String name, int age){ this.name = name; this.age = age; } //setter、getter方法 }
相关文章推荐
- Java的反射 基础+简单复制对象实例
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- Java -- 利用反射实现对象之间相同属性复制BeanUtil
- Java -- 通过反射处理bean对象
- CXF框架简单的JavaBean对象传递进行讲解。
- Java通过反射实现简单对象的拷贝
- java反射实现对象复制
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- 简单的JAVABEAN属性复制方法!
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- java 反射机制实现对象复制
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- 利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合
- Java的反射机制---动态调用对象的简单方法
- Java反射复制一个数据对象
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- java两个相同Bean对象复制
- java中复制对象通过反射或序列化
- 简单的java 反射机制实践 map 与object对象的转换
- java的简单反射运用实例(读取csv文件映射为对象)