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.
Vale a pena usar Enum?
8 Respostas
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.
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.
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
)
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.
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!