Pregunta

public class Test {
    public static void main(String[] args) {

    }
}

class Outer {
    void aMethod() {
        class MethodLocalInner {
            void bMethod() {
                System.out.println("Inside method-local bMethod");
            }
        }
    }
}

¿Alguien puede decirme cómo imprimir el mensaje de bMethod?

¿Fue útil?

Solución

Sólo puedes crear una instancia MethodLocalInner dentro aMethod.Así que hazlo

void aMethod() {

    class MethodLocalInner {

            void bMethod() {

                    System.out.println("Inside method-local bMethod");
            }
    }

    MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
    foo.bMethod();

}

Otros consejos

dentro del metodo un método después de la declaración de la clase MétodoLocalInterior podrías, por ejemplo, hacer la siguiente llamada:

new MethodLocalInner().bMethod();

¿Por qué no creas simplemente una instancia de MethodLocalInner, en aMethod, y llama bMethod en la nueva instancia?

Esto podría ayudarte a comenzar (no tengo nada útil para probar).Observe la sintaxis del constructor modificada:

http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html

Debes llamar a new Outer().aMethod() dentro de tu método principal.También necesitas agregar una referencia a MethodLocalInner().bMethod() dentro de tu aMethod(), así:

public class Test {
    public static void main(String[] args) {
        new Outer().aMethod();
    }
}


void aMethod() {
    class MethodLocalInner {
        void bMethod() {
            System.out.println("Inside method-local bMethod");
        }
    }
    new MethodLocalInner().bMethod();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top