日期:2014-05-20  浏览次数:20701 次

private安全性
把一个方法或者变量声明成private,一定安全么?求解释。

------解决方案--------------------
不一定,通过发射可以访问的。
------解决方案--------------------
当然不一定,安全包含的含义太多了
------解决方案--------------------
反射,直接得
------解决方案--------------------
支持一楼
------解决方案--------------------
private 是安全的!

前面有人说用反射可以读取,那是因为没有对 Java 进行安全策略文件的限制!
------解决方案--------------------
这在C++里通过破坏类的安全机制取得类地址就可以。但在java里没有指针,我想不出怎样不通过成员函数取得private成员的值的方法。请高手给个反例。

另外,楼主,访问权限是为了帮助你管理好你的模块,如果你硬要访问,都设为public也未偿不可。
规则的制定不是为了让你违反的。
------解决方案--------------------
反射:
Java code

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(value = RetentionPolicy.RUNTIME)
public @interface Value
{
    String[] value();
}