java 反射示例,以备后用
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectTester
{
public Object copy(Object object) throws Exception
{
// 获得对象的类型
Class<?> classType = object.getClass();
System.out.println("Class:" + classType.getName());
// 通过默认构造方法创建一个新的对象
Object objectCopy = classType.getConstructor(new Class[] {}).newInstance(new Object[] {});
// 获得对象的所有属性
Field fields[] = classType.getDeclaredFields();
for (int i = 0; i < fields.length; i++)
{
Field field = fields[i];
String fieldName = field.getName();
String firstLetter = fieldName.substring(0, 1).toUpperCase();
// 获得和属性对应的getXXX()方法的名字
String getMethodName = "get" + firstLetter + fieldName.substring(1);
// 获得和属性对应的setXXX()方法的名字
String setMethodName = "set" + firstLetter + fieldName.substring(1);
// 获得和属性对应的getXXX()方法
Method getMethod = classType.getMethod(getMethodName, new Class[] {});
// 获得和属性对应的setXXX()方法
Method setMethod = classType.getMethod(setMethodName, new Class[] { field.getType() });
// 调用原对象的getXXX()方法
Object value = getMethod.invoke(object, new Object[] {});
System.out.println(fieldName + ":" + value);
// 调用拷贝对象的setXXX()方法
setMethod.invoke(objectCopy, new Object[] { value });
}
return objectCopy;
}
public static void main(String[] args) throws Exception
{
Customer customer = new Customer("Tom", 21);
customer.setId(new Long(1));
Customer customerCopy = (Customer) new ReflectTester().copy(customer);
System.out.println("Copy information:" + customerCopy.getId() + " " + customerCopy.getName() + " "
+ customerCopy.getAge());
}
}
class Customer
{
private Long id;
private String name;
private int age;
public Customer()
{
}
public Customer(String name, int age)
{
this.name = name;
this.age = age;
}
public Long getId()
{
return id;
}
public void setId(Long id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
张文海
分享到:
相关推荐
spring-boot-jpa-thymeleaf-curd:spring boot + jpa + thymeleaf 增删改查示例 spring-boot-rabbitmq:spring boot和rabbitmq各种消息应用案例 spring-boot-scheduler:spring boot和定时任务案例 spring-boot-web...
Spring Cloud使用的各种示例,以最简单、最实用为标准 spring-cloud-eureka:eureka server单机、双机、集群示例 eureka-producer-consumer:利用eureka实现服务提供与调用示例 spring-cloud-hystrix:Hystrix熔断...
MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar
spring-javaconfig-sample, Spring MVC/Spring Data JPA/Hibernate的spring JavaConfig示例 spring-配置示例自 spring 3.0以来,JavaConfig特性被包含在核心 spring 模块中。 因此Java开发人员可以将 spring bean...
Spring微服务示例-spring-cloud-example
Spring Boot 中文索引 | Spring Cloud学习示例代码 | Spring Boot 精品课程 English | Github地址 | 码云地址 | Spring Boot 1.0 Spring Boot 2.0 Spring Boot 2.0 最全使用教程 Favorites-web:云收藏(Spring ...
Spring Cloud 使用的各种示例,以最简单、最实用为标准 [Spring Cloud 中文索引](https://github.com/ityouknow/awesome-spring-cloud) | [Spring Boot学习示例代码]...
Java-Spring-WebService最基础的配置示例.txt
本项目示例基于spring boot 最新版本(2.1.9)实现,Spring Boot、Spring Cloud 学习示例,将持续更新…… 在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目...
spring-boot-starter-kafka示例程序\n 支持springcloud1.5.4,kafka0.8.2.x\n 项目地址:https://github.com/zhyea/spring-boot-starter-kafka
本资源,是一些示例代码,包括CXF,Spring MVC,是编写博文的示例代码。同时会不断的修改,最新版本请看日期版本号 1.博文示例代码:使用CXF和Spring...2.博文示例代码:第 1 部分:Spring MVC入门,快速搭建web应用
mybatis-plus-sample-quickstart-springmvc: 快速开始示例(Spring MVC版本) mybatis-plus-sample-reduce-springmvc: 简化掉默认mapper类示例(Spring MVC版本) mybatis-plus-sample-generator: 代码生成器示例 ...
Spring Cloud使用的各种示例,以最简单、最实用为标准 spring-cloud-eureka:eureka server单机、双机、集群示例 eureka-producer-consumer:利用eureka实现服务提供与调用示例 spring-cloud-hystrix:Hystrix熔断...
基于Java的微服务实践,单体微服务创建、Docker部署、Dubbo微服务实践等.zip 基于Java的微服务实践。包括Spring Boot开发Web应用、...spring-boot-swagger Spring Boot集成Swagger2 spring-cloud-demo Spring Cloud示例
电影示例应用 如何一起使用Spring Boot,Spring Data和Neo4j。 Spring Data Neo4j可以在基于Spring的应用程序中方便地集成Neo4j。 它提供了对象图映射(OGM)功能以及Spring Data项目共有的其他功能。 笔记该项目...
- [spring-boot-web](https://github.com/ityouknow/spring-boot-examples/tree/master/spring-boot-web):Spring Boot Web 开发综合示例 - [spring-boot-redis]...
graphql-java-spring-boot-example 我的教程示例应用程序。 您将需要 。 克隆此mvnw spring-boot:run并执行mvnw spring-boot:run 。 或在IDE中,执行com.example.DemoGraphQL.DemoGraphQlApplication类。 您可以...
spring-cloud-contract-samples, spring 云合同项目示例 spring-云合同示例这个存储库包含用于 spring 云契约项目的消费者和生产者应用程序。它包含 2个重要分支。 master,我们测试最新版本的spring 云协定,以及 ...
Spring Boot 2.X 系列示例代码请看这里:Spring Boot 2.X 示例代码 spring-boot-hello:Spring Boot 3.0 Hello World 示例 spring-boot-banner:Spring Boot 3.0 定制 banner 示例 spring-boot-helloworld:Spring ...
JAVAspring_使用javascript开发Web示例项目_项目开发