Metodo Classe interna locale
-
09-06-2019 - |
Domanda
public class Test {
public static void main(String[] args) {
}
}
class Outer {
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
}
}
Qualcuno può dirmi come stampare il messaggio da bMethod
?
Soluzione
Puoi solo istanziare MethodLocalInner
entro aMethod
.Quindi fallo
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
foo.bMethod();
}
Altri suggerimenti
All'interno del metodo un metodo dopo la dichiarazione della classe MetodoLocalInner potresti ad esempio fare la seguente chiamata:
new MethodLocalInner().bMethod();
Perché non crei semplicemente un'istanza di MethodLocalInner
, In aMethod
, e chiama bMethod
sulla nuova istanza?
Questo potrebbe aiutarti a iniziare (non ho nulla a portata di mano con cui testare).Notare la sintassi modificata del costruttore:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
Devi chiamare new Outer().aMethod() all'interno del tuo metodo principale.Devi anche aggiungere un riferimento a MethodLocalInner().bMethod() all'interno di aMethod(), in questo modo:
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();
}