プライベートメソッドに内部クラスからアクセスするための例を作成しましたが、例外クラスが見つからないたびに取得しています。私は以下のように例外取得していますプライベート内部クラスアクセスメソッド
class Test {
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("Inner.Private");
Method m = clazz.getDeclaredMethod("foo");
m.setAccessible(true);
m.invoke(new Inner());
}
}
class Inner {
private class Private {
private void foo() {
System.out.println("foo called");
}
}
}// end of Inner
:スレッドで
例外を "メイン" にjava.lang.ClassNotFoundException:java.net.URLClassLoader $ 1.run(不明なソース)で Inner.Private
非常に参考になります。なぜそれが内部クラスまたは任意の洞察力を無視しているのか教えてください。
テストをパブリッククラスにします。 – theVoid
これは 'Inner $ Private'です。 – Savior
@Pillarに加えて、 'Inner'インスタンスを' Inner.Private'のメソッドに与えているので、 'm.invoke(new Inner());'は動作しません。 – Tunaki