`
TRAMP_ZZY
  • 浏览: 132619 次
社区版块
存档分类
最新评论

Java 反射实现对象拷贝

    博客分类:
  • Java
阅读更多
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反射机制创建对象实现:java 深度拷贝 -超完美 ,自己做的,下面  package aop; public class Student { private String name; private int age; public String getName() { return name; } public ...

    java 深度拷贝 复制 深度复制.zip

    java反射机制创建对象实现:java 深度拷贝 -超完美,只使反射机制,不使用其它封装好的深度拷贝的工具类

    java类复制一个持久化对象

    java中利用反射复制一个持久化对象

    Java开发技术大全(500个源代码).

    CopyFile.java 文件复制实例 dir.java 显示目录下的所有文件和目录 encrypt.java 文件加密 FileList.java 自己实现的一个文件名称枚举类 MyDataIO.java 数据输入输出示例 MyFileOutput.java 将键盘读入的文字...

    duple:使用反射将所有数据从一个对象复制到另一个对象的 Java 实用程序

    使用反射将所有数据从一个对象复制到另一个对象的 Java 实用程序。 “复制”操作,si 基于现有的 getter 和 setter 完成。 源类和目标类必须具有相同的 getter 和相同的 setter 才能工作。 在我的项目中,我总是...

    JavaReflect:Java反射测试!

    Java反射的使用 这个小例子简单介绍了Java使用反射的各种方法,帮助大家快速掌握Java反射的基本使用方法。例子程序是用Android Studio编写的,如果你使用Eclipse,新建一个工程,拷贝src下面的几个类过去就可以了....

    一种c#深拷贝方式完胜java深拷贝(实现上的对比分析)

    楼主是一名asp.net攻城狮,...但也不能算自己白忙活吧,也找到了其他实现深拷贝的方式(但是每种方式我都觉得并不是太合理,也许是因为c#的方式带入了吧,最后贴出c#版本纯反射实现深拷贝的代码) 方式一:实现Cloneab

    Java面试题及答案大全(2023持续更新)

    本文分为十九个模块,分别是:「Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、...

    J2SE笔记讲解个人修订(1.1).docx

    5 JAVA反射机制 6 JAVA注解(ANNOTATION) 7 JAVA中的异常类 8 JAVA-SWING 9 观察者模式 10 内部类讲解 11 JAVA I/O流讲解 12 JAVA多线程 13 JAVA网络通信 14 JAVA类加载器CLASSLOADER 15 JAVA简单工厂...

    JAVA核心知识点整理.zip

    java核心知识点整理,面试很有用 Java核心知识点2.JVM JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个...5.6JAVA 序列化(创建可复用的 Java 对象) 5.7JAVA 复制 6. Spring 原理

    Java 基础核心总结 +经典算法大全.rar

    节点流和处理流 Java IO 的核心类 File Java IO 流对象 字节流对象InputStream OutputStream 字符流对象Reader Writer 字节流与字符流的转换新潮的 NIO 缓冲区(Buffer)通道(Channel) 示例:文件拷贝案例 BIO 和 NIO ...

    程序员java面试题汇总(通关宝典).zip

    资源分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、...

    2023java最新面试资料汇总

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    Java后端面试八股文

    Java基础、容器、多线程、反射、对象拷贝、Java Web、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud 、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM等多种常用面试...

    2020年最新版--Java+最常见的+200++面试题汇总+答案总结汇总

    本文分为十九个模块,分别是: Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQ

    java开发工程师面试中被经常问到知识点大全

    JavaSE基础、容器、多线程、反射、对象拷贝 Java Web相关的(servlet,JSP)、异常、网络、常见的23种设计模式 java的spring相关的框架:Spring/Spring MVC、 Spring Boot/Spring cloud 数据库链接框架:Hibernate、...

    java基础案例与开发详解案例源码全

    15.2 使用Java反射机制414 15.2.1 获取类型信息414 15.2.2 创建对象417 15.2.3 调用方法419 15.2.4 访问成员变量的值421 15.2.5 操作数组422 15.3 反射与动态代理424 15.3.1 静态代理424 15.3.2 动态代理426 15.4 本...

    Java后端面试问题整理.docx

    • 熟悉常见异常分类以及处理,熟悉反射、注解、内部类、泛型、序列化、深浅复制 • 熟悉Java多线程并发中线程基本方法,线程池,线程生命周期,熟悉Java锁中常见锁分类(乐观/悲观锁、自旋锁、独/共享锁、可重入锁、...

Global site tag (gtag.js) - Google Analytics