您的位置:首页 > 编程语言 > Java开发

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

2015-05-04 16:46 543 查看
[code]我们都知道如果一个变量用private声明,那么他们的变量将只能在自身的类中或类的对象使用,对于其他类是不可见的。现在我将通过反射访问私有变量。


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

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


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

[code]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
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: