Class对象的生成方式:
1.Class.forName("包名+类名")
2.类名.class
3.实例对象.getClass()
实体类:
package gll; /** * Created by Administrator on 2015/4/1. */ public class User { private String name; private String age; static { System.out.println("init class by static..."); } { System.out.println("init class by no static..."); } public User() { System.out.println("constructor...."); } public User(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
测试用例:
package gll; import org.junit.Before; import org.junit.Test; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; /** * Created by Administrator on 2015/4/1. */ public class UserReflectTest { private Class<?> classByForName; @Before public void setUp() throws Exception { String classPath = "gll.User"; classByForName = Class.forName(classPath); } @Test public void should_init_class_for_class() throws Exception { Class<?> userClass = User.class; assertThat(classByForName == userClass, is(true)); } @Test public void should_init_class_for_getClass() throws Exception { Class<?> userClass = new User().getClass(); assertThat(classByForName == userClass, is(true)); } }
总结:
加载类的时候初始化静态的方法属性。
new类实例对象的时候初始化非静态方法属性。
因此,三种方式生成Class对象,其实只有一个Class对象。在生成Class对象的时候,首先判断内存中是否已经加载。所以,生成Class对象的过程如下:
当我们编写一个新的java类时,JVM就会编译成class对象,存放在同名的.class文件中。在运行时,当需要生成这个类的对象,JVM就会检查此类是否已经装载内存中。若是没有装载,则把.class文件装入到内存中。若是装载,则根据class文件生成实例对象。
相关推荐
利用java反射机制读取XML文档,省去了花费很多时间浪费在判断元素名词上面。
Android平台与Web服务数据交互时运用Java反射机制解析数据的研究
3.2.1 Java反射机制的概念 Java反射机制在Java运行状态中,对于任意一个类,我们都能够知道这个类的所有属性和方法;, 对于任意一个对象,我们都能够调用它的任意一个方法;。 这种动态获取的信息以及动态调用对象...
java 反射机制 字符串 对象 将java对象的数据封装成为xml格式的字符串,或将字符串解析为java的对象形式
ava语言允许通过程序化的方式间接的对Class操作,Class文件...并分别通过Java实例对这些信息进行描述,Java允许用户通过这个Class相关的描述对象来间接调用类的功能。这就是为程序化方式操作Class文件提供了一个途径。
java中的reflect机制解析XML
详细解析java的反射机制
本文档对Java中使用最广的反射进行了深度而让人简单容易理解的解析,附有实例,可供致力于java底层研究的人提供借鉴
Reflection 是Java被视为动态(或准动态)语言的一个关键性质。本文借由实例,大面积示范Reflection APIs
解析excel,使用java反射机制,能够解析所有的excel模板,不受模板格式现在,而且还可以支持解析日期,数字和字符串,实现通用的解析方法,不需要定义解析excel的模板,通过反射实现全解析,全支持。
上面涉及到的代码,可以下载. 博文链接:https://lggege.iteye.com/blog/218770
前言: 近公司正在进行业务组件化进程,其中的路由实现用到了Java的反射机制,... JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方
利用java反射机制实现的json与java对象互相转化的工具,只暴露了两个空开的接口,其他接口都是私有的。
这个程序集中的知识:通过解析配置文件获得与数据库的链接,同时解析xml映射数据库表,其中还运用到了反射机制,同时通过已经映射的数据库表来达到对数据库的各种操作。
java中的常用反射机制详细分析案例,提供最详细的解析说明。
Java 程序在运行期间可以动态加载、解析和使用一些在编译阶段并不确定的类型数据,这一机制被称为反射(Reflection)。反射库(reflection library)提供了一个非常丰富且精心设计的工具类,以便编写能够动态操纵Java...
基于Java的XML解析与反射设计模式 摘要:随着计算机时代的蓬勃发展,internet的普及给社会以及人民的生活带来了巨 大的影响。与此同时,b/s结构的多系统相互访问技术应时代的发展也如雨后春笋般不断 涌现出来,相应...
使用POI框架解析复杂的Excel文件+Java后端开发人员+解析复杂Excel文件。内部含有测试使用文件,以及详细的代码注解。
有了java反射机制,什么都好办了,只需要写一个dao类,四个方法,增删改查,传入不同的对象,就OK啦,无需为每一个 表都创建dao类,反射机制会自动帮我们完成剩下的事情,这就是它的好处。说白了,反射机制就是专门...
快一年没写推文了,感觉肚子里也积了点东西,今天就搞一搞个人觉得还是挺酷的东西–结合反射机制搞一个通用Excel导入,通用导出功能。 想了解下反射api的使用可以看下JAVASchool的说明:...