【无标题】

【无标题】,第1张

前言

Java的反射——Class对象


一、Class对象

1.在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识(RTTI)。这个信息跟踪着每个对象所属的类。虚拟机利用运行时类型信息选择相应的方法执行。保存这些信息的类被称为Class,可以通过专门的Java类访问这些信息。

2.Class类的实例表示正在运行的Java应用程序中的类和接口。其中枚举是一种特殊的类,注释是一种特殊的接口。每个数组属于被映射为Class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象基本的Java类型(boolean、byte、char、short、int、long、float和double)和关键字void也表示为Class对象。

3.Class对象就是用来创建类的所有的"常规"对象的。每个类都有一个Class对象,每当编写一个并且编译了一个新类,就会产生一个 Class对象(保存在体同名的 .class 文件中)。

4.Class没有公共构造方法。Class对象是在加载类时由Java 虚拟机以及通过调用类加载器中的defineClass方法自动构造的。

二、获取class对象的三种方法 1.类引用.getClass();

代码如下(示例):

Person person=new Person();
Class clazz=person.getClass();
2.Class.forName(“类的路径”);

代码如下(示例):
通过这个方法会有找不到该路径的异常,所以在使用时需要捕获异常。

String name="chapter3_8.step1.Person";
    	Class clazz=null;
    	try {
			clazz=Class.forName(name);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
3.类名.class
Class clazz=Person.class;

通过这三种方法都可以达到获取类反射的class对象信息。

总结

Class对象能做什么?
Class 类存放类的结构信息,能够通过 Class 对象的方法取出相应信息:类的名字、属性、方法、构造方法、父类、接口和注解等信息。
在使用中常使用类.class,这个方法相较于另外两个比较方便。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/919290.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存