Необходимо вызвать закрытый метод foo()
класса Inner.Private , где Private
- внутренний закрытый класс из основного метода основного класса. Код выглядит примерно так:
public class MainClass {
public static void main(String[] args) throws Exception {
// Need to invoke foo() from here
}
static class Inner {
private class Private {
private String foo() {
return "someString";
}
}
}
}
Я пытался получить это с помощью Java Reflection, но у меня возникают проблемы с этим подходом.
Моя попытка вызвать foo()
is:
Inner innerClassObject = new Inner();
Method method = Inner.Private.class.getDeclaredMethod("foo");
method.setAccessible(true);
method.invoke(innerClassObject);
Но это дает исключение NoSuchMethodException:
Exception in thread "main" java.lang.NoSuchMethodException:
default.MainClass$Inner$Private.foo()
at java.lang.Class.getDeclaredMethod(Unknown Source)
Я застрял в этой точке, достижимо ли это с помощью Java Reflection или любым другим способом?