Java中的运行期类型鉴定



对于作为程序一部分的每个类,它们都有一个class对象。换言之,每次写一个新类时,同时也会创建一个class对象,更恰当的说,是保存在一个完全同名的.class文件中。在运行期,一旦我们想生成那个类的一个对象,用于执行程序的java虚拟机首先就会检查那个类型的class对象是否已经载入。若尚未载入,jvm就会查找同名的.class文件,并将其载入。一旦那个类型的class对象进入内存,就用它创建那一类型的所有对象。

1class对象

可以使用class.forName(类名)来得到class的句柄。注意类名是字符串,必要时需要加上包名

也可以使用类标识,如类名.class,这样做不仅更加简单,而且更安全,因为它会在编译期间得到检查。由于它取消了对方法调用的需要,所以执行的效率也会更高。类标识不仅可以应用于普通类,也可以应用于接口,数组以及基本数据类型。除此之外,针对每种基本数据类型的封闭器类,它还存在一个名为TYPE的标准字段。TYPE字段的作用是为相关的基本数据类型产生class对象一个句柄。

2、类型检查

一种是instanceof,另一种是isInstance

3、反射

Class方法提供getMethods()getConstructors()可以分别返回MethodConstructor的一个数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值