java 中通过反射获取私有变量的值

来源:互联网 发布:mac xcode安装教程 编辑:程序博客网 时间:2024/06/07 22:41
我们都知道如果一个变量用private声明,那么他们的变量将只能在自身的类中或类的对象使用,对于其他类是不可见的。现在我将通过反射访问私有变量。

下面是一个私有变量的bean:

public class PrivateField {    private String name = "qq";    private String password = "qqpassword";}

下面是得到私有变量的值:

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    }}
0 0