- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
static {
Unsafe u = null;
Exception ex = null;
try {
Class objectStreamClass = Class.forName("sun.misc.Unsafe");
Field unsafeField = objectStreamClass.getDeclaredField("theUnsafe");
unsafeField.setAccessible(true);
u = (Unsafe) unsafeField.get(null);
} catch (ClassNotFoundException e) {
ex = e;
} catch (SecurityException e) {
ex = e;
} catch (NoSuchFieldException e) {
ex = e;
} catch (IllegalArgumentException e) {
ex = e;
} catch (IllegalAccessException e) {
ex = e;
}
exception = ex;
unsafe = u;
}
Исправлено.
код в порядке. Написан код, для того, чтобы через рефлексию подгрузить класслоадером класс, потому что если его предварительно не загрузить, то через Unsafe.getUnsafe экземпляр theUnstafe не получить. Экзепешн ловиться исключительно для отладки дебаггером.