// Declara o enum Towns1, com os valores Towns1.NY, Towns1.LA e Towns1.SF
enum Towns1{NY, LA, SF}
public class DeclareEnum {
// Declara o enum DeclareEnum.Towns2, com os valores
// DeclareEnum.Towns2.NY, DeclareEnum.Towns2.LA e DeclareEnum.Towns2.SF
enum Towns2{NY, LA, SF};
public static void main(String [] args) {
// A linha a seguir não compila:
// enum Towns3{NY, LA, SF};
// O erro que o compilador emite:
// "enum types must not be local"
System.out.println (Towns1.NY); // imprime "NY"
System.out.println (Towns2.NY); // imprime "NY"
// A linha a seguir não compila:
// System.out.println (Towns1.NY == Towns2.NY);
// erro: incomparable types: Towns1 and DeclareEnum.Towns2
}
}
Aproveitando: quando voces tem uma classe de modelo que tem um atributo de um tipo enum, o que usam pra persistir esse objeto no Hibernate? (sem considerar uma tabela que tenha os dados da enum, ai seria um relacionamento N-1 normal)
Atualmente associo cada elemento da enum com um codigo, deixo o atributo transient e faco metodos especiais pra carregar/obter o codigo do elemento da enum correspondente. Tem outro jeito melhor?