в отражении частное поле может быть доступно через getDeclaredField() и setAccessible (true). Как получить доступ к закрытому полю внешнего класса через API-интерфейс byteec ASM Objectweb? я поставил, чтобы получить частное поле от чего-то, как, с помощьюПолучить java.lang.IllegalAccessError при доступе к частному полю внешнего класса через ASM Java Bytecode
Field current = sourceObject.getDeclaredField(privateFieldName);
Field.setAccessible(true);
Type sourceType = Type.getType(sourceObject.getClass());
mv.visitFieldInsn(Opcodes.GETFIELD,
sourceType.getInternalName(),
privateFieldname,
Type.getDescriptor(current.getType()));
Когда байт-код выполняется, и, чтобы получить частное поле, я всегда получал ошибку «java.lang.IllegalAccessError»
Любой ключ к разгадке? Спасибо, комплект,
Здравствуйте, любая мысль? Спасибо, –
Да. См. Мой ответ. – aioobe