Bom dia,
Gostaria de saber quando suar classes enum, no sentido: a performance é melhor do que uma classe estática com constantes? Tem outras melhorias?
Obrigado.
Cara,
o código fica muito mais limpo…
Além de que, vc pode salvar o ENUM na base de dados (como String ou ordinal).
Com o enum, você pode adicionar / remover tipos sem ter que refatorar o código…
Vixxx, dps que conheci o ENUM nunca mais usei variaveis estáticas
Você ainda pode definir métodos no Enum, veja o exemplo onde foi feita uma calculadora com Enum:
As vezes vejo a idéia do enum como um segurador de variáveis. [=
Tem gente que usa para fazer como um Singleton boladão da vida, ou com métodos e tudo mais.
Eu, pessoalmente não gosto.
Mas ele se comporta como uma classe; se você quiser, escreva uns 3 métodos no enum e depois troque de public enum MeuEnum para public class MeuEnum. Vai funfar do mesmo modo.
Eu gosto de usar o Enum. Quando preciso fazer laguma parametrização ou algum dado que dificilmente será mudado.
Fica mais organizado, em um sistema grande faz muito senntido usar.
[quote=kbello]Bom dia,
Gostaria de saber quando suar classes enum, no sentido: a performance é melhor do que uma classe estática com constantes? Tem outras melhorias?
Obrigado.[/quote]
A performance é exatamente a mesma, só que é a forma que é recomendada atualmente (interface com constantes ou classe estática com constantes são coisas antigas, que não devem mais ser usadas em código novo - como o Java 5 foi lançado há 8 anos, eu acho que não se deve escrever código à moda antiga).
(Puxa, como o tempo passa depressa - eu me lembro do lançamento do Java 5, foi quando o Scott McNealy levou no colo um filhote de tigre )
[quote=kbello]Bom dia,
Gostaria de saber quando suar classes enum, no sentido: a performance é melhor do que uma classe estática com constantes? Tem outras melhorias?
Obrigado.[/quote]
O enum foi incluido no java 5 exatamente porque essas soluções antigas não são boas. Têm diversas falhas. O mais parecido seria usar uma classe que tem estáticos que são instancias da classe. Mas isso é exactamente o que o enum é.
Só que o enum é um objeto especial como a String que a jvm trata de forma mais avançada. Por isso a serialização de enum não permite que vc crie varios objetos iguais como seria com os estáticos ( e por isso que da uma boa base para um singleton).
As vantagens do enum sobre os outros métodos são enormes. E em java enum são classes e têm instancias ( não são inteiros disfarçados como em C++ ou C#) e isso lhe permite implementar ineterfaces, ter vários métodos, etc… o que vc quiser.
Uma coisa que é boa em enums é que é possível você usá-los no switch, o que não é possível com simples instâncias de objetos.
Muito obrigado pelas resposta galera! Está bem mais claro pra mim agora.
Abraços!