- 浏览: 1056035 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1441)
- 软件思想&演讲 (9)
- 行业常识 (250)
- 时时疑问 (5)
- java/guava/python/php/ruby/R/scala/groovy (213)
- struct/spring/springmvc (37)
- mybatis/hibernate/JPA (10)
- mysql/oracle/sqlserver/db2/mongdb/redis/neo4j/GreenPlum/Teradata/hsqldb/Derby/sakila (268)
- js/jquery/jqueryUi/jqueryEaseyUI/extjs/angulrJs/react/es6/grunt/zepto/raphael (81)
- ZMQ/RabbitMQ/ActiveMQ/JMS/kafka (17)
- lucene/solr/nuth/elasticsearch/MG4J (167)
- html/css/ionic/nodejs/bootstrap (19)
- Linux/shell/centos (56)
- cvs/svn/git/sourceTree/gradle/ant/maven/mantis/docker/Kubernetes (26)
- sonatype nexus (1)
- tomcat/jetty/netty/jboss (9)
- 工具 (17)
- ETL/SPASS/MATLAB/RapidMiner/weka/kettle/DataX/Kylin (11)
- hadoop/spark/Hbase/Hive/pig/Zookeeper/HAWQ/cloudera/Impala/Oozie (190)
- ios/swift/android (9)
- 机器学习&算法&大数据 (18)
- Mesos是Apache下的开源分布式资源管理框架 (1)
- echarts/d3/highCharts/tableau (1)
- 行业技能图谱 (1)
- 大数据可视化 (2)
- tornado/ansible/twisted (2)
- Nagios/Cacti/Zabbix (0)
- eclipse/intellijIDEA/webstorm (5)
- cvs/svn/git/sourceTree/gradle/jira/bitbucket (4)
- jsp/jsf/flex/ZKoss (0)
- 测试技术 (2)
- splunk/flunm (2)
- 高并发/大数据量 (1)
- freemarker/vector/thymeleaf (1)
- docker/Kubernetes (2)
- dubbo/ESB/dubboX/wso2 (2)
最新评论
package cn.tzz.java.reflect;
2.
3.import cn.tzz.aop.entity.Person;
4.import java.lang.reflect.Field;
5.import java.lang.reflect.Method;
6.import org.junit.Test;
7.
8.public class TestReflect {
9.
10. /** 方法--属性复制 */
11. public void fieldCopy(Object source, Object target) throws Exception {
12. Method[] methods = source.getClass().getDeclaredMethods();
13. for (Method method : methods) {
14. String methodName = method.getName();
15. System.out.println(methodName);
16. if (methodName.startsWith("get")) {
17. Object value = method.invoke(source, new Object[0]);
18. System.out.println(value);
19. String setMethodName = methodName.replaceFirst("(get)", "set");
20. Method setMethod = Person.class.getMethod(setMethodName,
21. method.getReturnType());
22. setMethod.invoke(target, value);
23. }
24. }
25. }
26.
27. /** 属性字段名、值、数据类型 */
28. public void getFields(Object object) throws Exception {
29. Field[] fields = object.getClass().getDeclaredFields();
30. for (Field field : fields) {
31. field.setAccessible(true);
32. String classType = field.getType().toString();
33. int lastIndex = classType.lastIndexOf(".");
34. classType = classType.substring(lastIndex + 1);
35. System.out.println("fieldName:" + field.getName() + ",type:"
36. + classType + ",value:" + field.get(object));
37. }
38. }
39.
40. @Test
41. public void test() throws Exception {
42. Person person = new Person();
43. person.setId(1L);
44. person.setName("AAA");
45. Person person2 = new Person();
46. fieldCopy(person, person2);
47. getFields(person2);
48. }
49.}
2.
3.import cn.tzz.aop.entity.Person;
4.import java.lang.reflect.Field;
5.import java.lang.reflect.Method;
6.import org.junit.Test;
7.
8.public class TestReflect {
9.
10. /** 方法--属性复制 */
11. public void fieldCopy(Object source, Object target) throws Exception {
12. Method[] methods = source.getClass().getDeclaredMethods();
13. for (Method method : methods) {
14. String methodName = method.getName();
15. System.out.println(methodName);
16. if (methodName.startsWith("get")) {
17. Object value = method.invoke(source, new Object[0]);
18. System.out.println(value);
19. String setMethodName = methodName.replaceFirst("(get)", "set");
20. Method setMethod = Person.class.getMethod(setMethodName,
21. method.getReturnType());
22. setMethod.invoke(target, value);
23. }
24. }
25. }
26.
27. /** 属性字段名、值、数据类型 */
28. public void getFields(Object object) throws Exception {
29. Field[] fields = object.getClass().getDeclaredFields();
30. for (Field field : fields) {
31. field.setAccessible(true);
32. String classType = field.getType().toString();
33. int lastIndex = classType.lastIndexOf(".");
34. classType = classType.substring(lastIndex + 1);
35. System.out.println("fieldName:" + field.getName() + ",type:"
36. + classType + ",value:" + field.get(object));
37. }
38. }
39.
40. @Test
41. public void test() throws Exception {
42. Person person = new Person();
43. person.setId(1L);
44. person.setName("AAA");
45. Person person2 = new Person();
46. fieldCopy(person, person2);
47. getFields(person2);
48. }
49.}
发表评论
-
20180222积累
2018-02-22 09:34 4821. mybatis如何通过接口查找对应的mapper. ... -
20180208积累
2018-02-08 10:28 475临时表与永久表相似,但临时表存储在 tempdb 中,当不 ... -
行业应用
2018-01-30 16:30 495git clone的时候用上面那个IP地址,下面栏中的不能 ... -
SQLite 数据库
2018-01-29 22:57 757android: SQLite创建数据 ... -
java里面获取map的key和value的方法
2018-02-01 11:29 2168获取map的key和value的方法分为两种形式: ma ... -
Eclipse中Maven WEB工程tomcat项目添加调试以及项目发布细节记录
2018-02-23 21:11 735一、建立一个maven WEB项目 1、file-&g ... -
错误:HttpServlet was not found on the Java
2018-02-23 21:12 392我们在用Eclipse进行Java web ... -
使用 java8 实现List到Array的转换
2018-02-23 21:13 2995开发中需要调用第三方的库,有些 API 的入参要求是 do ... -
Java8 利用Lambda处理List集合
2018-01-11 09:58 5638Java 8新增的Lambda表达式,我们可以很方便地并行操 ... -
java中string与json互相转化
2018-01-11 09:40 1078在Java中socket传输数据时,数据类型往往比较难选择。 ... -
JSON 数据格式
2018-01-11 09:37 475JSON(JavaScript Object Notatio ... -
java怎么读取json格式的数据
2018-01-11 09:46 1061java可以使用JSONObject和JSONArray来操作 ... -
Java8-如何将List转变为逗号分隔的字符串
2018-01-10 10:13 2003Converting a List to a String ... -
eclipse maven 打war包的两种方式
2018-02-23 21:25 707第一种:利用pom.xml文件打包。 右键pom.xml ... -
Annotation(三)——Spring注解开发
2018-02-28 09:21 431Spring框架的核心功能IoC(Inversion o ... -
Spring自定义注解
2018-02-28 09:32 605java注解:附在代码中的一些元信息,用于在编译、运行时起 ... -
Java项目
2018-01-08 10:56 0这两种解决办法已经能完全解决问题,不过值得注意的一点是,我 ... -
解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法
2018-03-22 10:41 1136在Eclipse中建立好一个Maven项目后,如果Java ... -
Java @override报错的解决方法
2018-01-07 12:56 0有时候Java的Eclipse工程换一台电脑后编译总是@ove ... -
Java 8 配置Maven-javadoc-plugin
2018-01-07 09:07 1049在升级JDK至1.8之后,使用Maven-javadoc- ...
相关推荐
Java反射是Java编程语言中的一个重要特性,它允许程序在运行时动态地获取类的信息并操作类的对象。在Java中,反射机制提供了强大的能力,包括在运行时检查类的结构、创建对象实例、调用方法以及访问和修改字段值。...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建对象、获取类...
Java反射机制是Java编程语言中的一个强大特性,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。这个特性使得Java具有了高度的灵活性和动态性,尤其是在处理元数据、创建对象、调用私有方法...
Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...
在本文中,我们将深入探讨如何使用Java反射来获取并执行某个特定的方法。 首先,我们需要了解Java反射的基本概念。`java.lang.Class`类是反射的核心,它代表了Java中的每一个类。我们可以通过以下方式获取到一个...
### Java反射性能测试分析 #### 引言 Java反射机制是Java编程语言中一个强大的特性,它允许程序在运行时动态地访问、检测和修改类、接口、字段和方法等对象。然而,反射操作通常会引入额外的开销,这在性能敏感的...
Java反射是Java编程语言中的一个强大特性,它允许运行时的程序访问并操作类、接口、字段和方法等信息,即使这些信息在编译时并未明确知晓。在Java中,反射通常通过`java.lang.Class`类和相关的API来实现。本实例将...
### Java反射机制详解 #### 一、概述 Java反射机制是一种强大的编程技术,它允许运行时检查类的信息并操作对象的内部结构。本篇将基于Sun公司的官方文档《Java™ Core Reflection API and Specification》(1997年...
### 反射实例—JAVA反射机制 #### 一、反射概念及原理 反射在计算机科学领域,特别是程序设计中,是指程序有能力访问、检测和修改其自身的结构和行为。这一概念最早由Smith于1982年提出,并迅速应用于各种编程语言...
### Java反射机制详解 #### 一、什么是Java反射? Java反射是Java编程语言的一个特性,它允许运行时检查和操作程序结构(类、字段、方法等)。反射的主要用途包括但不限于:动态实例化对象、访问私有成员、调用...
Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...
Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性使得Java具有高度的灵活性,尤其在处理框架、插件系统以及元数据驱动...
### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至修改自身的状态和行为。这种能力一经提出,迅速成为了计算机科学领域的研究...
### Java反射机制与NoSuchMethodException详解 在Java编程中,反射是一种强大的机制,允许程序在运行时检查和修改自身结构和行为。然而,当开发者尝试使用反射调用一个不存在的方法时,便会遇到`java.lang....
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射主要用于在运行时分析类和对象,包括访问私有成员、调用私有方法、创建动态代理等。...
Java反射是Java编程语言中的一个强大工具,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在给定的“利用java反射将json字符串转成对象”的主题中,我们将深入探讨如何借助反射机制将JSON...
### Java反射机制详解 #### 一、什么是Java反射机制? Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的...
Java反射机制是Java编程语言中的一个强大工具,它允许程序在运行时检查并操作类、接口、字段和方法等对象。在"北大青鸟java反射机制"的学习资料中,我们将会深入探讨这一核心特性。 首先,我们要理解反射的核心概念...
### Java反射机制详解 #### 一、引言 在Java编程语言中,反射(Reflection)是一种强大的工具,它允许程序在运行时访问类的信息,并能够动态地创建对象、调用方法以及获取字段值等。这种能力对于框架设计、代码...