反射学习心得

反射:加载类,并允许以编程的方式解剖类的各种成分(成员变量、方法、构造器)

获取某些类的信息、操作他们

第一步:加载类、获取类的字节码:class对象

获取class对象的三种方式:

Class c1 = 类名.class

调用Class提供的方法 public static Class forName(String package)

Object提供的方法:Class c3 = 对象.getClass()

2.获取类的构造器:constructor对象

返回的都是构造器对象数组 需要用Constructor【】数组来接 右边用 类名.getConstructor()获取全部构造器(只能获取public修饰符的)

getDeclaredConstructors()只要存在就能拿到的 俩者都可以带参来获取特定的构造器参数要以 int.class 等放进去

newInstance()创建对象,可以传参

setAccessible()设置为true,禁止检查访问控制(暴力反射)

3.类的成员变量:field对象

public Filed【】 getFields() 获取类的全部成员变量(只能获取public修饰的)

public Filed【】 getDeclaredFields()获取类的全部成员变量(只要存在就能拿到)

获取一个,就加成员变量的名字

4.类的成员方法:Method对象

方法基本上同上

作用:得到一个类的全部成分然后操作

可以破坏封装性

适合做Java的框架,主流的框架都会基于反射设计出一些通用的功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值