获取Class对象的三种方式

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

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

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

    //结果为true
    System.out.println(clazz == clazz1);

}

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

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

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

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

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

API
Class的位置 java.lang
类 Class<T>
继承于
java.lang.Object  ——>   java.lang.Class<T>

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

类型参数:

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

所有已实现的接口:

Serializable, AnnotatedElement, GenericDeclaration, Type

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

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

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

      如:String.class.newInstance()

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

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

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

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值