Llamando al método privado dentro de la clase privado dentro de la clase interna

ArnabSaha:

Necesidad de llamar a un método privado foo()de la clase Inner.Private , donde Privatees 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()?

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=345454&siteId=1
Recomendado
Clasificación