我们都知道如果一个变量用private声明,那么他们的变量将只能在自身的类中或类的对象使用,对于其他类是不可见的。现在我将通过反射访问私有变量。
下面是一个私有变量的bean:
public class PrivateField { private String name = "qq"; private String password = "qqpassword"; }
package com.evan.exercise; import java.lang.reflect.Field; public class GetPrivateField { public static void main(String[] args) throws Exception { // /通过类的字节码得到该类中声明的所有属性,无论私有或公有 Field fieldPassword = PrivateField.class.getDeclaredField("password"); // 设置访问权限(这点对于有过android开发经验的可以说很熟悉) fieldPassword.setAccessible(true); // 得到私有的变量值 PrivateField user = new PrivateField(); Object password = fieldPassword.get(user); // 输出私有变量的值 System.out.println(password.toString());//qqpassword } }
java中通过反射强力获取私有变量的值,布布扣,bubuko.com
原文:http://blog.csdn.net/zl544434558/article/details/20851491