来源:blog.csdn.net/u010164936/article/details/8792208最佳网络2
在一个类中,为了防止外界访问某些属性和方法,通常将其设置为private。不能用正常的方式(对象名、属性名、对象名、方法名)访问这个属性和方法,但是有没有其他的方式可以访问呢?答案是肯定的,而这就是java反射带来的便利。使用反射访问类的私有属性和方法如下:
public class Reflect { private String name; private int age; private Reflect(int age) { this.age = age; } private void speak(String name) { 百思特网 System.out.println("My name is" name); } public Reflect(String name) { this.name = name; } }首先,我们需要理解三个反射包中的类:
通过使用类中的方法,可以获取类中的所有构造函数对象、方法对象和字段对象。但是,我们仍然无法访问私有化的构造方法、公共方法和私有属性。这时,我们可以在它们继承的父类中使用setAccessible()方法来设置或取消访问检查,从而达到访问私有对象的目的。
public static void main(String[] args) throws Exception { Reflect reflect = new Reflect("a"); Method[] methods = Reflect.class.getMethods(); Field[] fields = Reflect.class.getDeclaredFields(); for (int i = 0; i 本文地址:http://www.diemang.com/post/24214.html