リフレクションでは、プライベートフィールドはgetDeclaredField()およびsetAccessible(true)を介してアクセスできます。Objectweb ASMバイトコードAPIを介して外部クラスのプライベートフィールドにアクセスするにはどうすればよいですか?のようなものからプライベートフィールドを取得するように設定しました
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」が発生しました。
どんな手掛かり?バンドルに感謝します、