一.获取一个字节码文件对象
1.新建一个Person.java文件
反射学习2
反射学习2
2.编写ReflectDemo.java文件
反射学习2
反射学习2
3.执行结果如下
反射学习2 学到这里我们至少学会拿到一个字节码文件对象了。
二.通过反射获取构造方法
反射学习2
运行结果如下:
反射学习2
在这里我们需要注意一个问题,就是getConstructors返回的是一个表示此类公共构造方法的 Constructor 对象数组 ,也就是必须定义时被public修饰的构造方法才能被返回到数组中,这一点在API中也明确给出了。
反射学习2

下面是API对Constructor类的说明:
反射学习2
当我们将Person类中public Person(String name, int age)这个构造方法的public去掉时,运行结果如下,打印出来的只有两个被public修改的公共构造方法,证明了API的正确性。
反射学习2
其实Class类也提供了更加方便的方法getDeclaredConstructors,用来获取所有已声明的构造方法。
反射学习2
反射学习2
打印结果:结果中包括了非public修饰的构造方法。
反射学习2
三. 通过反射获取构造方法并使用
反射学习2
反射学习2
ReflectDemo代码如下
反射学习2
反射学习2
执行结果如下:
反射学习2

相关文章: