Método De Classe Interna Local
-
09-06-2019 - |
Pergunta
public class Test {
public static void main(String[] args) {
}
}
class Outer {
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
}
}
Alguém pode me dizer como imprimir a mensagem de bMethod
?
Solução
Você só pode instanciar MethodLocalInner
dentro aMethod
.Modo de fazer
void aMethod() {
class MethodLocalInner {
void bMethod() {
System.out.println("Inside method-local bMethod");
}
}
MethodLocalInner foo = new MethodLocalInner(); // Default Constructor
foo.bMethod();
}
Outras dicas
Dentro do método aMethod após a declaração da classe MethodLocalInner você poderia, por exemplo, fazer a seguinte chamada:
new MethodLocalInner().bMethod();
Porque não basta você criar uma instância de MethodLocalInner
, em aMethod
, e chamada de bMethod
na nova instância?
Isso pode ajudar você a começar, (eu não tenho nada de útil para fazer o teste).Observe que o construtor modificado sintaxe:
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
Você precisa chamar o new Outer().aMethod() dentro do método main.Você também precisa adicionar uma referência para MethodLocalInner().bMethod() dentro da sua aMethod(), assim:
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();
}