Classe anônima é uma classe que não é declarada explicitamente no código.
Hã???
Acho que um exemplo encaixa bem aqui. :P
Por exemplo, se eu fosse listar meus funcionários em ordem alfabética, eu faria primeiro uma classe que implementa de Comparator:
import java.util.*;
public class ComparaFuncionario implements Comparator<Funcionario> {
public int compare(Funcionario f1, Funcionario f2) {
return f1.getNome().compareTo(f2.getNome());
}
}
E depois usaria a instância da classe no método sort do Collections:
List<Funcionario> listaDeFuncionarios = new ArrayList<Funcionario>();
...
java.util.Collections.sort(listaDeFuncionarios,new ComparaFuncionario());
...
System.out.println(listaDeFuncionarios);
Legal, isso funciona... mas dá trabalho fazer uma classe só para ordenar...
Então, é isso que uma classe anônima ajuda! Em vez de eu declarar explicitamente a classe, eu faço assim:
java.util.Collections.sort(listaDeFuncionarios,new Comparator<Funcionario>() {
public int compare(Funcionario f1, Funcionario f2) {
return f1.getNome().compareTo(f2.getNome());
}
});
Como vocês sabem, não dá para instanciar uma interface, portanto a instrução new Comparator
Fala a verdade, Java é complicado mesmo... :P
Um comentário:
Uia.. mto legal kra, nunca tinha visto esse conceito sendo aplicado..
Aproveitando Take, se vc me permite uma sugestão.. já viu em algum blog de programação q o pessoal taca syntax highlighter nos códigos?
Acho que fica bacana hhehehe (mas eh sua opiniao). abrassss!
Postar um comentário