Galera estou com uma duvida;
Eseta aqui no forum pesquisando sobre inner class e acessei o seguinte exercício aqui no forum
http://www.guj.com.br/posts/list/219034.java
Fiz umas adaptações e o exercicio ficou assim:
interface Declaravel{
void declarar();
}
class Imposto implements Declaravel{
public void declarar(){}
class NotaFiscal implements Declaravel{
public void declarar(){}
class Pagamento implements Declaravel{
public void declarar(){}
}
}
}
public class Teste {
public static void main(String[] args) {
Declaravel [] d = new Declaravel[3];
d[0] = new Imposto();
d[1] = new Imposto().new NotaFiscal();
//d[2] = new Imposto().new NotaFiscal().new Pagamento(); // aqui da erro
Imposto ip = new Imposto();
Imposto.NotaFiscal nf = ip.new NotaFiscal();
d[2] = nf.new Pagamento();//aqui funciona
}
}
Queria saber porque assim não funciona ?
E usando assim funciona ?
Imposto ip = new Imposto();
Imposto.NotaFiscal nf = ip.new NotaFiscal();
d[2] = nf.new Pagamento();//aqui funciona
A pergunta é, como chamar uma inner class de uma inner class em uma unica linha, sem que seja necessário criar uma variavel antes.