获取Class对象的三种方式

时间:2025-01-14 20:49:30

        方式一:利用简单方法实现  Object类 中的getClass()方法,创建Person类,必须要明确具体的类,并且要创建对象,麻烦。(因为有更简单的办法,直接输入全类名就可以完成全部创建,其他步骤可以封装)

/**
 * 获取Class对象的三种方式
 * 类中的getClass()方法,必须要明确具体的类,并且要创建对象,麻烦。
 */
@Test
public void getClassObject() {

    Person person = new Person();
    Class clazz = ();
 
    Person person1 = new Person();
    Class clazz1 = ();

    //结果为true
    (clazz == clazz1);

}

        方式二:通过对象静态属性 .class来获取对应的Class对象相对简单,但是还是需要先明确类中的静态成员。不够拓展。

/**
* 通过对象静态属性 .class来获取对应的Class对象
*/
public void getClassObject_2() {
    Class clazz = ;
}

        方式三:通过反射,只要通过给定类的字符串名称就可以获取该类,更为拓展,forName

/**
 * 方式三:只要通过给定类的字符串名称就可以获取该类,更为拓展,forName
 */
@Test
public void getClassObject_3() throws ClassNotFoundException {
    String className = "";
    Class clazz = (className);
    (clazz);
}

        有了类对象之后,可以根据类对象来获取类的对象,使用的方法为Class里的方法

API
Class的位置 
类 Class<T>
继承于
  ——>   <T>

<T>就是由类对象而获取的类的对象

类型参数:

T - 由此 Class 对象建模的类的类型。例如, 的类型是 Class<String>

所有已实现的接口:

Serializable, AnnotatedElement, GenericDeclaration, Type

由类对象而产生实例对象(类的对象)所使用的方法(适用于无参对象)

Class类的对象的一个成员方法 公开,成员,返回值为类对象的实例对象 newInstance()
          创建此 Class 对象所表示的类的一个新实例。

1、通过类对象调用newInstance()方法,适用于无参构造方法:

      如:()

2、通过类对象的getConstructor()或getDeclaredConstructor()方法获得构造器(Constructor)

      对象并调用其newInstance()方法创建对象,适用于无参和有参构造方法。

      例如:().newInstance(“Hello World,this is Instance by getConstructor”);