Vale a pena usar Enum?

8 respostas
K

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.

8 Respostas

D

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

R

Você ainda pode definir métodos no Enum, veja o exemplo onde foi feita uma calculadora com Enum:

H

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.

A

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.

E

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.

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 :slight_smile: )

S

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.

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.

E

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.

K

Muito obrigado pelas resposta galera! Está bem mais claro pra mim agora. :smiley:
Abraços!

Criado 10 de dezembro de 2012
Ultima resposta 10 de dez. de 2012
Respostas 8
Participantes 7