相关疑难解决方法(0)

为什么允许通过反射访问Java私有字段?

考虑这个例子:

import java.lang.reflect.Field;

public class Test {

    public static void main(String[] args) {
        C c = new C();
        try {
            Field f = C.class.getDeclaredField("a");
            f.setAccessible(true);
            Integer i = (Integer)f.get(c);
            System.out.println(i);
        } catch (Exception e) {}
    }
}

class C {
    private Integer a =6;
}
Run Code Online (Sandbox Code Playgroud)

允许您通过反射访问类的私有字段似乎不合逻辑.为什么有这样的功能?允许这种访问不是"危险的"吗?

java reflection private-members

43
推荐指数
4
解决办法
8061
查看次数

标签 统计

java ×1

private-members ×1

reflection ×1