Java反射获取抽象类方法属性问题讲解

Java反射获取抽象类方法属性问题讲解

  • 结论
  • 一、案例准备
  • 二、测试
    • 方法:使用反射获取抽象类私有方法和私有属性
    • 具体操作(获取私有方法)
    • 具体操作(获取私有属性)


结论

Java 通过反射可以获得抽象类的任何修饰符(包括private,public,protected)属性信息和方法。


一、案例准备

创建了一个抽象类Person,其中有私有属性name和私有方法declare()。

Java反射获取抽象类方法属性问题讲解_第1张图片
注:本篇测试的是否可以使用反射获取到私有属性或者方法,若可以,则protected方法和public方法都可以通过反射获取到!


二、测试

方法:使用反射获取抽象类私有方法和私有属性

注:执行使用反射获取到抽象类的方法仍然需要抽象类的实例,即fun.invoke(实例,参数...)方法需要实例对象,但抽象类不能创建实例,那么我们可以使用匿名内部类创建实例。

具体操作(获取私有方法)

创建匿名内部类(相当于直接继承了)
Java反射获取抽象类方法属性问题讲解_第2张图片

由图可知抽象类中调用反射可以获取到私有方法


具体操作(获取私有属性)

Java反射获取抽象类方法属性问题讲解_第3张图片

由图可知抽象类中调用反射可以获取到私有属性


你可能感兴趣的:(Java基础,java,开发语言)