有时候我们在开发过程中经常会遇到,将一个对象的数据复制到另外一个对象里面去,比如要讲一个对象的数据复制到一个历史记录表里面去,如果我们用set ,get 就比较麻烦,用这个目前类的前提是,javaBean实体里面的属性是相同的才可以复制,这样可以大大提高了我们在开发过程中的数据操作时间。
import java.lang.reflect.Method;
/**
* 数据源复制util
* @author weidetian
* @version 2013-12-16
*/
public class BeanUtil {
public static void copyProperties(Object source, Object dest)
throws Exception {
Method[] sourceMethod = source.getClass().getMethods();
Method[] destMethod = dest.getClass().getMethods();
String sourceMethodName, methodFix1, destMethodName2, methodFix2;
for (int i = 0; i < sourceMethod.length; i++) {
sourceMethodName = sourceMethod[i].getName();
methodFix1 = sourceMethodName.substring(3,
sourceMethodName.length());
if (sourceMethodName.startsWith("get")) {
for (int j = 0; j < destMethod.length; j++) {
destMethodName2 = destMethod[j].getName();
methodFix2 = destMethodName2.substring(3,
destMethodName2.length());
if (destMethodName2.startsWith("set")) {
if (methodFix2.equals(methodFix1)) {
Object[] objs2 = new Object[1];
objs2[0] = sourceMethod[i].invoke(source,
new Object[0]);
// 只copy不为空的值
if (null != objs2[0]) {
destMethod[j].invoke(dest, objs2);
}
continue;
}
}
}
}
}
}
}
分享到:
相关推荐
- `Util.object.extend`:合并两个或多个对象,将源对象的属性复制到目标对象。 9. **字符串类**: - `Util.string.capitalize`:首字母大写。 - `Util.string.trim`:去除字符串两端的空白字符。 - `Util....
在本文中,我们将深入探讨如何配置SQL SERVER 2000与WebLogic 8.1之间的数据源和连接池,以便实现两者之间的有效通信。WebLogic Server是一个流行的Java应用服务器,而SQL SERVER 2000是Microsoft提供的关系型数据库...
11. **Scanner**: 用于从输入源(如键盘、文件)读取用户输入的数据。 12. **Objects**: 提供了一些实用的静态方法,如对象的比较、哈希计算、非空检查等。 13. **Optional**: Java 8引入的类,用于表示可能为null...
Java的java.util.zip包提供了ZipOutputStream和ZipInputStream类,用于创建和读取ZIP格式的压缩文件,这在数据源备份中非常常见。 8. **异常处理**:在备份过程中,可能会遇到各种异常情况,如文件不存在、网络问题...
- **磁盘和网络实用程序**:`dd`用于数据转换和复制,`lsblk`显示块设备信息,`ifconfig`管理网络接口。 - **其他工具**:`swapon`和`free`管理内存交换,`findmnt`显示挂载信息,`nsenter`允许进入另一个进程的...
本篇将详细讲解如何使用POI库进行Excel的Sheet页复制,包括数据和样式的跨文件操作。 首先,我们需要在项目中引入Apache POI的依赖。对于Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org....
9. **Scanner**:从输入源(如键盘、文件或系统输入)读取数据,支持多种数据类型。 10. **PriorityQueue**:一个优先队列,元素按照优先级顺序排列,通常用于实现堆排序等算法。 11. **LinkedList的迭代器...
4. **IO操作**:提供对文件和流的读写、复制、删除等操作,便于进行数据的存储和传输。 5. **数学计算**:可能包含了一些基础的数学运算,如幂运算、随机数生成、数字比较等。 6. **网络请求**:如果库的功能足够...
通过分析`stringUtil.c`源代码和`stringUtil.h`头文件,我们可以了解一些关键知识点。 1. **自定义字符串数据结构**:在C语言中,字符串通常以字符数组的形式存在。在`stringUtil.h`中,可能定义了一个名为`String`...
本文将深入探讨如何使用Java编程语言实现从一个数据库中定时自动抽取数据并复制到另一个数据库,以达到数据库间的实时或近实时同步。 首先,我们需要了解基础概念。Java是一种广泛使用的面向对象的编程语言,具有...
### Java深度复制源代码知识点解析 #### 一、深度复制概念 在Java中,对象的复制分为浅复制和深度复制两种。浅复制是指创建一个新的对象,并将原对象的非引用类型的字段值复制到新对象中;对于引用类型的字段,只是...
在实际开发中,尤其是当涉及到数据模型之间的转换时,Bean Util工具类能极大地提高代码的可读性和可维护性。 常见的Bean Util工具有Apache的Apache Commons BeanUtils库,Spring框架中的BeanUtils工具类,以及...
这样,即使源对象和目标对象有相同的嵌套属性,`merge-util`也能确保所有的属性都被正确处理。这对于处理配置文件、用户设置或构建工具的配置尤其有用,这些场景往往涉及到层次丰富的JSON对象。 使用`merge-util`库...
5. **其他功能**:除了上述核心功能,argo-util还提供了诸如数据类型转换、集合操作、线程控制、加密解密等多种辅助功能,这些都极大地扩展了库的实用性。 在实际使用过程中,开发者可以通过Maven或Gradle等构建...
在Android开发中,数据对象的复制是一个常见的需求,特别是在处理数据持久化、界面状态恢复或者组件间通信时。本文将深入探讨Java中的浅复制和深复制,并以Android为背景,结合具体的实例讲解如何实现Java泛型深拷贝...
【标题】"UTIL-DISK-Dskcpy2-源码.rar" 指的是一款名为 "Dskcpy2" 的磁盘复制工具的源代码压缩包。这个工具可能用于克隆硬盘、分区或进行数据迁移。源代码的提供意味着我们可以深入理解其内部工作原理,甚至根据需要...
7. **实用工具类**:`java.util.Arrays`和`java.util.Collections`提供静态方法,用于操作数组和集合,如排序、复制和填充。 8. **并发编程**:`java.util.concurrent`包虽然不在`java.util`下,但与之紧密相关,...
复制操作允许用户将选定的数据复制到剪贴板,以便稍后粘贴到其他位置。在ExtJS中,这可能涉及到监听控件的选择事件,当用户选择了一些内容后,使用`Ext.util.Clipboard`类或者浏览器提供的API(如`navigator....
在IT领域,文件及文件夹的复制是一项基础但极其重要的操作,特别是在处理大批量数据转移时。本文将深入探讨文件及文件夹复制的技术细节,包括其核心原理、实现机制以及在特定场景下的注意事项。 #### 文件复制的...
这意味着`util_tools`项目是开放源代码的,允许开发者查看、学习和修改源码。开源软件的好处在于透明度和社区支持,开发者可以深入理解工具的工作原理,遇到问题时也能寻求社区的帮助,甚至可以根据自身需求定制功能...