反射

反射

利用反射机制动态创建对象,动态调用方法是反射的精髓。

反射:运行时动态获取类的信息,调用类的方法。

获取Class类的方法:

①Class.forName()

②类名.class

③包装类.TYPE

Class c=Integer.TYPE

④对象名.getClass()

String name=”dsoid”

Class c=name.getClass()

Class类 的getDeclaredMethods()方法获取类的所有方法,但不包括继承的方法

Class类的getMethod()方法获取类的所有方法,包括继承的方法

getDeclaredMethods()和getMethod()只能获取普通方法,不能获得构造方法。

通过getConstructors()方法(获取到公有构造方法)和getDeclaredConstructors()方法(获取到所有构造方法)获取构造方法。

 

反射创建对象的方式:

①通过Class类的newInstance()方法创建对象(类必须有无参构造)

②通过Constructor的newInstance(Object[] args)方法创建对象(指定构造,可有参,可无参),不过要先获取构造列表通过参数指定构造。

反射机制修改属性:如果想要修改类中的私有属性,类中又没有提供get、set方法的话,可以通过反射机制提供的Field类,获取到Field对象,取消对属性的访问控制权限,通过Field的get和set方法修改。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值