Java反射获取抽象类方法属性问题讲解
- 结论
- 一、案例准备
- 二、测试
- 方法:使用反射获取抽象类私有方法和私有属性
- 具体操作(获取私有方法)
- 具体操作(获取私有属性)
结论
Java 通过反射可以获得抽象类的任何修饰符(包括private,public,protected)属性信息和方法。
一、案例准备
创建了一个抽象类Person,其中有私有属性name和私有方法declare()。
注:本篇测试的是否可以使用反射获取到私有属性或者方法,若可以,则protected方法和public方法都可以通过反射获取到!
二、测试
方法:使用反射获取抽象类私有方法和私有属性
注:执行使用反射获取到抽象类的方法仍然需要抽象类的实例,即fun.invoke(实例,参数...)方法需要实例对象,但抽象类不能创建实例,那么我们可以使用匿名内部类创建实例。
具体操作(获取私有方法)
创建匿名内部类(相当于直接继承了)
、
由图可知抽象类中调用反射可以获取到私有方法
具体操作(获取私有属性)
由图可知抽象类中调用反射可以获取到私有属性