不安全的方法可以确保对类进行初始化:

Unsafe.ensureClassInitialized(Class) line: not available [native method]

我怀疑这种类型的初始化不会像常规的Java类加载那样锁定类,因为我偶尔会遇到一些不可能的情况。以后可以根据需要提供更多详细信息,但是有人知道使用Unsafe进行类加载是否有这种怪癖?

顺便说一句,这是该类如何加载的简短堆栈跟踪:
Unsafe.ensureClassInitialized(Class) line: not available [native method]
UnsafeFieldAccessorFactory.newFieldAccessor(Field, boolean) line: 25
ReflectionFactory.newFieldAccessor(Field, boolean) line: 122
Field.acquireFieldAccessor(boolean) line: 918
Field.getFieldAccessor(Object) line: 899
Field.get(Object) line: 358

最佳答案

对于参考和Web搜索,事实证明您可以不使用Unsafe来强制类初始化:
Class.forName(cls.getName(), true, cls.getClassLoader());
不漂亮,但是可以。

07-28 00:36
查看更多