Pessoal,
estava tentando fazer uma declaração de enum, e me bateu uma dúvida.
Quando declarei o construtor, o Eclipse automáticamente(sem eu pedir :twisted: ) colocou o modificador public.
Mas na hora de compilar, ele reclamou :twisted: pois o modificador deveria ser private.
Eu voltei ao livro da Kathy e não encontrei nada falando do modificador para o construtor de enum, então gostaria de saber de vocês. Quais modificadores são permitidos a construtuores de enuns?
Também tentei o default e funcionou de boa. 
Obrigado aos que puderem responder.
Dúvida construtor Enum
5 Respostas
public e default
passei batido… não notei que era o construtor do enum…
[]s
rmalati ,
tem esse link que faz um comentário, dizendo que as restrições para enum são:
Restrictions on enum types
Though enum types are full-fledged classes, the following are not allowed with enums:enums cannot be subclassed
enums cannot have public constructor
enums are not allowed to be instantiated (using new)
enums cannot be cloned
All of these are enforced during compile-time.
http://deepjava.wordpress.com/2006/11/21/type-safe-enumerations-in-java-50/
fw
Hum, legal. Realmente não sabia.
Mas então pq o Eclipse colocou o modificador como public, alguma razão?
A questão com o eclipse eu não sei te dizer,
mas tem mais uma referência sobre o assunto, veja o item 8.9:
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#16830
Das especificações dá para se entender porque o default é aceito, ele internamente interpreta como private.
Toda declaração de enum equivale a final class, logo não pode ter subclasse.
todos as constantes são declaradas implicitamente sendo static e final.
fw
Amigão,
eu to fazendo a maior confusão!
To confundindo modificador do enum que pode ser public ou default com o modificador do construtor.
Eu vou dar uma melhor estudada inclusive nos links que você me passou.
Muito obrigado!