反射机制(补充)

Class类

通过Class类的对象可以获取类的属性、方法,生成类的实例,调用实例的方法、属性。
在这里插入图片描述
通过操作Class类的对象,实现对类的操作,实现对对象的操作。
在这里插入图片描述

使用反射的步骤

获取想要操作的类的Class对象,调用Class类中的方法,使用反射API来操作这些信息

获取class对象

1.通过Class类的静态方法 : Class class =Class.forName(className);
2.调用对象实例的getClass()方法
3.调用某个类的class属性
具体操作看class初学

https://blog.csdn.net/cp1002327672/article/details/127887843?spm=1001.2014.3001.5502

class类的常用方法:

获取属性

getFields() -所有可访问的公共字段
getDeclaredFields() -所有字段
getField(String name) -返回一个特定的公共字段对象

获取方法

getMethods()-所有公共方法,包括从超类和超接口继承的声明
getDeclaredMethods() -所有方法,包括公共,保护,默认(包)访问和私有方法,但不包括继承的方法
getMethod(String name, Class[] parameterTypes)-返回一个方法对象

反射优缺点

优点

运行期类型的判断,动态类加载
提高了程序的灵活性、扩展性,降低耦合性
提高自适应能力,无需提前硬编码目标类

缺点

性能问题
安全限制
内部暴露

反射API(类及方法)

java.lang.Class
forName()、newInstance()、getFields()等、getMethods()等、getConstructor()
java.lang.reflect.Field
getName()
java.lang.reflect.Method
getName()、invoke()
java.lang.reflect.Constructor
newInstance()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值