关于反射技术

本文详细介绍了Java反射机制的三种获取Class对象的方式,包括通过对象的getClass方法、利用类的静态属性以及通过Class类的静态方法forName。每种方式的特点及应用场景均有所涉及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反射就是动态获取指定类以及类中的内容(成员),并运行其内容。

应用程序已经运行,无法在其中通过new来创建对象,此时就不能对象。这时可以根据配置文件的类全名去找对应的字节码文件,并加载进内存,并创建该类对象实例。

获取Class对象的方式一:

通过对象具备的getClass方法(源于Object类的方法)。有点不方便,需要用到该类,并创建该类的对象,再调用getClass方法完成。

Person p = new Person();//创建Peron对象

Class clazz = p.getClass();//通过object继承来的方法(getClass)获取Person对应的字节码文件对象

 

获取Class对象的方式二:

       每一个类型都具备一个class静态属性,通过该属性即可获取该类的字节码文件对象。比第一种简单了一些,仅用一个静态属性就搞定了。但是,还是有一点不方便,还必须要使用到该类。

Class clazz = Person.class;

 

获取Class对象方式三:

        * 去找找Class类中是否有提供获取的方法呢?

        * 找到了,static Class forName(className);

        * 相对方便的多,不需要直接使用具体的类,只要知道该类的名字即可。

        * 而名字完成可以作为参数进行传递 ,这样就可以提高扩展性。

        * 所以为了动态获取一个类,第三种方式最为常用。

    Class clazz = Class.forName("cn.itcast.bean.Person");//必须类全名

 

Class clazz = Class.forName("

转载于:https://www.cnblogs.com/sjxbg/p/9520096.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值