Po galera todo mundo fala sobre o uso de inner class como “listeners” e tratadores de eventos e tals.
Mas…alguem poderia me dar exemplos mais claros de usos dessas coisas?
Realmente,qual outra utilidade?
Alguem ja usou,fora quem trabalha com swing?
E outra coisa…Alguem ja precisou instanciar uma inner classe de fora da classe outer?
Inner class
2 Respostas
Cara eu utilizei muito quando queria trabalhar com multithreading
E sim, já instanciei fora da outer
Vale tanto para listeners quanto para o caso do runnable.
Ah! E existe o caso dos enum. Muitas vezes o melhor lugar para se criar um enum (mesmo público) é dentro da própria classe. Afinal, muitas vezes o enum só faz sentido dentro da classe.
Por exemplo:
public class Vitrola {
public enum Estados {ON, OFF, PAUSE};
public Estados estado = Estados.OFF;
public Estados getEstado() {return estado};
//Demais implementações
}
Nesse caso, você pode fazer (fora da classe)
public boolean estaDesligado(Vitrola vitrola) {
return vitrola.getEstado() == Vitrola.Estados.OFF;
}
Note que a classe estados só faz sentido se associada a vitrola. Usa a inner class estatica desse jeito evita também criar uma classe “VitrolaEstados” que teria que ser importada toda vez que uma vitrola fosse importada…