ArnabSaha:
Necesidad de llamar a un método privado foo()
de la clase Inner.Private , donde Private
es una clase privada interna del método principal de la clase principal. El código es algo como esto:
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";
}
}
}
}
Yo estaba tratando de conseguir esto utilizando la reflexión de Java, pero yo estoy frente a los problemas de este enfoque.
Mi intento de invocar el foo()
es:
Inner innerClassObject = new Inner();
Method method = Inner.Private.class.getDeclaredMethod("foo");
method.setAccessible(true);
method.invoke(innerClassObject);
Pero esto da una NoSuchMethodException:
Exception in thread "main" java.lang.NoSuchMethodException:
default.MainClass$Inner$Private.foo()
at java.lang.Class.getDeclaredMethod(Unknown Source)
Estoy atascado en este punto, es que esto sea posible por la reflexión de Java, o cualquier otra forma?
crizzis:
Ummm ... ¿por qué no simplemente new Inner().new Private().foo()
?