Usando enum

Pessoal, boa noite.
Como posso usar enum em java5?
O código abaixo dá errro de compilação . . .
Obrigado,
Evandro

class Teste1 {
enum Atributo { WINTER, SPRING, SUMMER, FALL };
public boolean valorOk( int i ){
if( i == Atributo.WINTER ) return true;
return false;
}
}

Qual versão do Java você está usando? Tem que ser a partir da 5.0.

Ah e tire esse ponto-e-vírgula depois da última chave do enum.

Ue? vc pode comparar um int com um enum?!

 public boolean valorOk( int i ){
if( i == Atributo.WINTER ) return true; 

Eu acho que naum, naum seria algo como

 public boolean valorOk( Atributo i ){
if( i == Atributo.WINTER ) return true; 

Pessoal, desculpe a demora em retornar.

Seguinte:
O java que estou usando é java 1.5.0_07-b03.
Fiz até um teste com: for (Integer elem : lista) { blá blá blá
e isto funcionou normal

Tirei o ponto e vírgula que estava sobrando, conforme recomendação, mas continua com erro.

Pergunta: Os valores enum não correspondem a números inteiros, onde a primeira ocorrência vale 0, a segunda vale 1, e assim por diante ?

Eu cheguei a testar isto logo que o java5 foi lançado, e me lembro que na época funcionou. Só que agora não sei o que estou fazendo de errado . . .

Ahh, a mensagem de erro que dá é ‘incompatible types: int and Teste1.Atributo’

Obrigado,
Evandro

Não, enum eh como se fosse uma classe… pode possuir métodos, atributos etc

Olha por exemplo, pode possuir métodos abstratos, sobrescrever métodos etc.

   public enum Atributo
   {
      WINTER
      {
         String e()
         {
            return "Inverno";
         }
      },

      SUMMER
      {
         String e()
         {
            return "Verao";
         }
      };

      abstract String e();

      public String toString()
      {
         return e();
      }

   }

Ai comparando eles por exemplo:

   public Atributo x()
   {
      return Atributo.SUMMER;
   }

   public static void main(String[] args)
   {
      Atributo z = new Enums().x();
      if (z == Atributo.SUMMER)
      {
         System.out.println(z);
      }
      System.out.println(Atributo.SUMMER == Atributo.WINTER);
      System.out.println(Atributo.WINTER == Atributo.WINTER);
      System.out.println(Atributo.SUMMER == Atributo.SUMMER);
      //System.out.println(Atributo.SUMMER == 1);  //isso da erro e compilação
   }

Repare que comparo “Atributo” com “Atributo”, sempre, pode até criar métodos que retorna “Atributo” e se tento comparar um “Atributo” com int, ai da erro de compilação…

da uma olhada se vc entende, qq coisa… isso ai eh o que eu sei mais ou menos de enums hehe pode ser que tenha mais coisas ainda.

valeu aí pelas dicas.

tks,
Evandro