2010-12-09 55 views

Répondre

4

Oui, Java a énumérations:

public enum BazEnum { 
    FOO(0x01), 
    BAR(0x09); 

    private int value; 

    BazEnum(int value) { 
     this.value = value; 
    } 

    public int getValue() { 
     return value; 
    } 

    public static BazEnum fromValue(int value) { 
     for (BazEnum curenum : BazEnum.values()) { 
      if (curenum.getValue() == value) { 
       return curenum; 
      } 
     } 
     return null; 
    } 
} 

public class MainClass { 
    public static void main(String[] params) { 
     BazEnum baz = BazEnum.fromValue(0x09); 

     switch baz { 
      case FOO: 
       ... 
       break; 
      case BAR: 
       ... 
       break; 
      default: 
       ... 
       break; 
     } 
    } 
} 
+0

Exactement ce que j'allais poster .... –

+0

'BazEnum baz = BazEnum.fromValue (0x09); switch (baz) 'était exactement ce dont j'avais besoin - merci! – etheros

+0

@etheros: Juste au cas où vous ne l'auriez pas remarqué - c'est une méthode personnalisée définie dans le BazEnum lui-même. Par défaut, les énumérations n'ont pas de propriétés dans Java. – bezmax

-1

juste créer un ENUM xDD

public enum EnumName 
{ 
    Foo(),Bar(); 
} 

switch (baz) 
{ 
    case : EnumName.Foo 
    code 
    break; 
} 
0

Bien sûr, juste donner le ENUM un nom:

enum Baz 
{ 
    FOO, BAR; 
} 

Et alors vous pouvez basculer sur les expressions de t ype Baz:

switch (baz) 
    { 
    case FOO: 
     { 

     } 
     break; 

    case BAR: 
     { 

     } 
     break; 
    } 

Vous pouvez toujours associer FOO et BAR avec les valeurs 1 et 9 si vous voulez:

enum Baz 
{ 
    FOO(0x01), BAR(0x09); 

    Baz(int value) 
    { 
     this.value = value; 
    } 

    public final int value; 
} 

Ensuite, vous pouvez dire baz.value pour obtenir la valeur associée.

0
public enum Enum{ 
    FOO(0x01), 
    BAR(0x09); 

    Enum(int value){ 
     this.value=value; 
    } 
    private int value; 
}; 

public void test() { 
    Enum testEnum = null; 
    switch(testEnum){ 
     case FOO:{}break; 
     case BAR:{}break; 
    } 
} 
0

Alors que Java a enum, ils sont des objets et non des primitives. Il peut être plus simple à utiliser simplement des constantes

static final int 
    FOO = 0x01, 
    BAR = 0x09; 

switch (baz) { 
    case FOO: 
      //... 
      break; 
    case BAR: 
      //... 
      break; 
}