public class BeanCopyUtils {
/**
*
* copy:<br />
* 复制一个对象到另外一个
*
* @author zhangzhaoyu
* @param object
* @return
* @throws Exception
*/
public static void copy(Object org, Object des) throws Exception {
Class<?> orgClassType = org.getClass();
Class<?> desClassType = des.getClass();
//Object objectCopy = desClassType.getConstructor(new Class[]{}).newInstance(new Object[]{});
Field []fields = orgClassType.getDeclaredFields();
for (Field field : fields) {
String filedName = field.getName();
String firstLetter = filedName.substring(0, 1).toUpperCase();
String getMethodName = "get" + firstLetter + filedName.substring(1);
String setMethodName = "set" + firstLetter + filedName.substring(1);
Method getMethod = orgClassType.getMethod(getMethodName, new Class[]{});
Method setMethod = desClassType.getMethod(setMethodName, new Class[]{field.getType()});
if (getMethod != null) {
Object value = getMethod.invoke(org, new Object[]{});
if (setMethod != null) {
setMethod.invoke(des, new Object[]{value});
}
}
}
}
}
分享到:
相关推荐
在Java编程中,深拷贝和浅拷贝是两种常见的对象拷贝方式。它们主要区别在于,浅拷贝仅复制对象本身,而不复制它引用的对象;而深拷贝则会递归地复制对象及其所有引用的对象。在某些情况下,如需要完全独立的副本时,...
利用Java反射机制实现对象相同字段的复制操作 Java反射机制是Java语言中一个强大的工具,可以实现对象相同字段的复制操作。下面是对该机制的详细介绍和分析。 一、为什么需要对象相同字段的复制操作? 在项目开发...
总的来说,Java反射机制配合序列化可以实现对象的深度拷贝,但这种方法受限于对象必须实现序列化接口。对于不可序列化的对象,可以考虑使用JSON库进行转换。然而,这种方式可能存在性能和兼容性问题,因此在实际应用...
总之,Java反射提供了一种强大的机制,允许我们在运行时检查和操作类和对象。它在许多场景下非常有用,比如框架开发、动态代理、序列化、元数据操作等。同时,复制bean的值也是常见的需求,尤其在数据处理和对象模型...
Java反射机制是Java语言的一个强大特性,允许程序在运行时检查类、接口、字段和方法的信息,并能动态地创建对象和调用方法。通过java.lang.Class和java.lang.reflect包中的类,我们可以获取类的结构信息,包括构造器...
- **通用工具类**:例如深度拷贝、属性复制等,反射可以方便地在不同对象间复制属性。 以下是一个简单的反射使用示例: ```java public class ReflectTester { public Object copy(Object object) throws ...
在Java编程中,深度拷贝和浅拷贝是两种重要的对象复制方式,它们涉及到对象的内存管理和内存结构的复制。...但这里我们重点讨论了如何仅通过Java反射机制来实现深度拷贝,希望对理解这一概念有所帮助。
这篇博客文章“JAVA反射参数传递概略”将深入探讨如何使用反射来处理方法参数,尤其是涉及到参数传递的细节。 首先,让我们理解什么是参数传递。在Java中,有两种基本的参数传递方式:值传递和引用传递。值传递是将...
- 字符串操作框架:如Apache Commons BeanUtils库,使用反射实现对象属性的复制。 - 测试工具:JUnit等测试框架,通过反射调用私有方法进行测试。 - 反序列化:从文件或网络流中恢复对象时,需要使用反射来实例化...
总的来说,将JSON对象转换为Java Bean对象是Java开发中的基础操作,可以通过源码手动实现,也可以借助第三方库如Gson简化工作。理解这个过程对于处理JSON数据和构建RESTful API至关重要。在实际项目中,应根据需求...
**一、Java反射机制** Java反射机制是Java提供的一种能够在运行时检查类、接口、字段和方法的能力。它允许程序在运行时动态地获取类的信息并操作类的对象。以下是一些关于Java反射的重要知识点: 1. **Class对象**...
- clone() 方法是 Java 中的一个方法,它可以创建对象的拷贝,但是需要实现 Cloneable 接口,clone() 方法可以创建浅拷贝或深拷贝,浅拷贝只拷贝对象的引用,而深拷贝则拷贝对象的所有成员变量。 - 序列化机制是 ...
通过上述代码,我们成功地利用Java反射机制复制了一个持久化对象。这种方法虽然简单有效,但在实际应用中也存在一定的局限性和挑战,比如不支持复制复杂的数据结构(如集合和数组)中的元素,也不考虑对象之间的引用...
总结来说,Java反射操作结合Apache Commons BeanUtils库可以帮助开发者实现灵活、动态的代码,但同时也需要谨慎对待其潜在的风险和性能影响。对于那些希望深入理解Java平台的底层机制和提升代码灵活性的开发者来说,...
Java反射在开发中常用于工具类或框架,例如Spring框架就大量使用了反射技术来实现依赖注入。在自定义工具类中,我们也可以利用反射实现通用的功能,比如序列化与反序列化、属性复制等。 四、注意事项与性能影响 ...
Java反射机制是Java语言提供的一种基础功能,通过反射机制,可以在运行时分析类的属性和方法,并动态调用对象的方法。在Java的java.lang.reflect包中包含了一系列的类来支持反射机制的实现,下面详细介绍一下这些类...
首先,获取输入对象的类,然后遍历其所有字段,通过反射找到对应的 getter 和 setter 方法,实现属性的复制。 反射在实际开发中有很多应用场景,比如: 1. **动态代理**:Java 动态代理通常基于反射实现,允许在...