一、概念

Class 类是在Java语言中定义一个特定类的实现,在java.lang 包中。一个类的定义包含成员变量,成员方法,还有这个类实现的接口,以及这个类的父类。Class类的对象用于表示当前运行的 Java 应用程序中的类和接口。 比如:每个数组均属于一个 Class 类对象,所有具有相同元素类型和维数的数组共享一个Class 对象。基本的 Java 类型(boolean, byte, char, short,int, long, float 和 double) 和 void 类型也可表示为 Class 对象。

二、如何得到Class的对象呢?

1、调用Object类的getClass()方法来得到Class对象,这也是最常见的产生Class对象的方法。

所有的java类都是继承了object这个类,在object这个类中有一个方法:getclass().这个方法是用来取得该类已经被实例化了的对象的该类的引用,这个引用指向的是Class类的对象。我们自己无法生成一个Class对象(构造函数为private),而这个Class类的对象是在当各类被调入时,由 Java 虚拟机自动创建 Class 对象,或通过类装载器中的 defineClass 方法生成。 我们生成的对象都会有个字段记录该对象所属类在CLass类的对象的所在位置。

2、使用Class类的中静态forName()方法获得与字符串对应的Class对象。

3、获取Class类型对象的第三个方法非常简单。如果T是一个Java类型,那么T.class就代表了匹配的类对象。例如
Class cl1 = Manager.class;
Class cl2 = int.class;
Class cl3 = Double[].class;
注意:Class对象实际上描述的只是类型,而这类型未必是类或者接口。例如上面的int.class是一个Class类型的对象。由于历史原因,数组类型的getName方法会返回奇怪的名字。

三、 Class.forName()方法:

Class.forName:返回与给定的字符串名称相关联类或接口的Class对象。

Class.forName是一个静态方法,同样可以用来加载类。

04efb31c4b17ac670a3f1b015d49168f.png

该方法有两种形式:

  1. Class.forName(String name, boolean initialize, ClassLoader loader)

该形式的参数 name表示的是类的全名;initialize表示是否初始化类;loader表示加载时使用的类加载器。

2. Class.forName(String className)。

该形式则相当于设置了参数 initialize的值为 true,loader的值为当前类的类加载器。

四、class类其他方法

f4436815d915b508904aa7d6a2a75b82.png
Logo

前往低代码交流专区

更多推荐