sábado, 12 de outubro de 2013

Dicas de Programação: Como Reescrever um Método de um Único Objeto em Java?

Pela pergunta, parece muito difícil codificar... Mas, para fazer, até que é fácil! :)

A gente pode reescrever o método de um único objeto, codificando ele durante a instanciação deste (chamada do construtor). Exemplo:

...
List<String> listaStrings = new ArrayList<String>() {
      public String toString() {
               return "Reescrevi o método";
      }
};
listaStrings.add("Primeira String");
System.out.println(listaStrings);
...

Interessante, ele escreveu "Reescrevi o método" na tela!

Se você retirar as linhas de "reescrita":

...
List<String> listaStrings = new ArrayList<String>();
listaStrings.add("Primeira String");
System.out.println(listaStrings);
...

Ele escreve "[Primeira String]" (agora parece normal :P ).

Obs.: Isso só pode ser feito em objetos que não são de classes "final".

Até mais!

Nenhum comentário: