【发布时间】:2012-10-11 19:35:50
【问题描述】:
如何获取不安全类的实例?
我总是遇到安全异常。我列出了 OpenJDK 6 实现的代码。我想弄乱sun.misc.Unsafe 提供给我的功能,但我总是最终得到SecurityException("Unsafe")。
public static Unsafe getUnsafe() {
Class cc = sun.reflect.Reflection.getCallerClass(2);
if (cc.getClassLoader() != null)
throw new SecurityException("Unsafe");
return theUnsafe;
}
(请不要试图告诉我使用这个类有多不安全。)
【问题讨论】:
-
值得注意的是,这是故意未记录的,不仅因为它不安全,不是 Java API 的正式部分,也没有正式支持,而且还因为您打算“构建您的自己的光剑”:如果您自己无法弄清楚如何获取
Unsafe的实例,那么您可能对JVM 不够了解,无法使用Unsafe而不会引起问题.