java的反射

本文详细介绍了Java中的Class对象,包括其作用、获取方法,以及如何通过Class对象获取类的信息如名称、属性和方法。重点讲解了通过类引用、Class.forName和类名.class三种途径获取Class对象的实践示例。
摘要由CSDN通过智能技术生成

前言

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,这个方法相较于另外两个比较方便。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值