java之反射

  • Java .lang. class作用

类型分类:每一种类型不是引用类型就是原始的类型。引用类型包括类、枚举和数组以及接口。

java.lang.String,所有原始类型的包装器类等都是引用类型;原始类型是固定的,分为:boolean, byte, short, int, long, char, float, 和 double。

对于每种对象对应的类型(对应上述“类型”),Java虚拟机对其进行实例化,成为Java .lang. class的不可变实例。

Java .lang. class提供了,检查对象在运行时所拥有什么属性的方法,包括它的成员和类型信息。它还提供了创建新类和对象的能力。最重要的是,class是所有反射的入口点。(所以,理解了Java .lang. class,反射也就明白了)

  • java.lang.reflect.Member作用

java.lang.reflect.Member是一个接口,由java.lang.reflect.Field、java.lang.reflect.Method、 java.lang.reflect.Constructor来实现。

其中:java.lang.reflect.Field为关于类的相关信息,如类的类型及其修饰符;

          java.lang.reflect.Method为对类中方法中返回值、参数、抛出的异常和对方法的修饰符,进行获取。还有就是对类的方法进行调用;

          java.lang.reflect.Constructor是和java.lang.reflect.Method功能差不多的。只有两个区别,第一就是没有返回值,所以无法获取,第二是调用该类可以创建出给定的类一个新的对象的实例。

  • 缺点
性能开销较大、不够安全、代码内部会曝光。
所以,如果没有必要,就尽量不要使用反射。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值