terça-feira, 11 de dezembro de 2012

Uma alternativa para converter enum em string

Em um post anterior sobre classe do tipo Enum utilizamos diversas @Override para realizar as conversões da tipo enumerado para string. Vamos testar uma outra variação para conseguirmos este mesmo resultado.

No post anterior criamos um Override para cada toString() de cada valor enumerado. Agora vamos criar um construtor para o tipo, fazer o Override do método toString() da classe e criar cada valor passando a string que desejamos que apareça.

Nosso código ficará portanto:

O que estamos fazendo?
  1. criamos um construtor privado para atribuir ao valor enumerado uma String que é nomeDia
  2. sobrepomos o método default toString() para que seja retornado o valor que está em nomeDia
Pronto. Está feito!

Por que isto funciona? Na verdade temos que entender que estamos fazendo 2 coisas no código acima. A primeira é definir uma classe DiasDaSemana que tem um construtor como qualquer outra classe e um método toString. Depois temos que entender que criamos 7 instâncias (objetos) desta classe. Uma para cada valor enumerado. Cada objeto criado é uma enumeração, possui um campo privado denominado nomeDia e nele é armazenado o valor que foi passado no construtor.

Temos que criar uma classe de teste, que chama DiasDaSemana. Basicamente vamos somente dar saída na tela dos valores:

O resultado como esperado é:

Nenhum comentário:

Postar um comentário