Método Clase interna local
-
09-06-2019 - |
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
?
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();
}