Java 反射 - 获取Class实例的3种方式

文章介绍了在Java中获取Class实例的三种常见方法:通过类的静态属性`.class`,对象的`getClass()`方法,以及使用`Class.forName()`静态方法。文中代码示例展示了这三种方式的结果是相同的,说明运行时类在内存中只会加载一次并被缓存。
摘要由CSDN通过智能技术生成

获取Class实例的3种方式

运行时类在内存中会缓存起来,在整个执行期间,只会加载一次。

/**
 * 获取Class实例的3种方式
 */
public static void t1() throws ClassNotFoundException {
    //调用运行时类的静态属性:class
    Class<A1> clazz1 = A1.class;

    //调用运行时类的对象的getClass()
    A1 a1 = new A1();
    Class<? extends A1> clazz2 = a1.getClass();

    //调用Class的静态方法forName(String className)
    String className = "com.example.annotation.A1"; //全类名
    Class<?> clazz3 = Class.forName(className);

    System.out.println(clazz1==clazz2); //true
    System.out.println(clazz1==clazz3); //true
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值