2014-07-16 4 views
0

J'ai défini un ENUM dans une classe AENUM ne fournit pas attendu résultat

public class A{ 

    public static final String CANDY = "yelow candy"; 
    public static final String CAKE = "cookie"; 

    public enum Yummy{ 
     CANDY, CAKE; 
    } 

} 

Dans un autre paquet,

public class C { 

    Yummy[] yummies = A.Yummy.values(); 

    for (Yummy yum : yummies){ 
      String yumString = yum.toString(); 
      System.out.println("yum =" + yumString); 
    } 

}

je reçois CANDY et CAKE en conséquence, pas "bonbons jaunes" et "cookie". Qu'est-ce que je dois changer pour obtenir les « bonbons yelow » et « cookie

Répondre

6

Vous avez défini un ENUM « A.Yummy » et aussi deux chaînes, » A.Candy » et « A.CAKE ».

Ils ne sont pas liés du tout.

Vous voulez supprimer les chaînes et ajouter quelque chose comme https://stackoverflow.com/a/13291109/1041364

public enum Yummy { 
    CANDY("yelow candy"), 
    CAKE("cookie"); 

    private String description; 

    private Yummy(String description) { 
     this.description= description; 
    } 

    public String toString() { 
     return this.description; 
    } 
} 
2

Effectuez les opérations suivantes:

public enum Yummy{ 
    CANDY ("yellow candy"), CAKE ("cookie"); 

    private String name; 

    private Yummy(String name) { 
     this.name = name; 
    } 

    public String toString() { 
     return this.name; 
    } 
} 
1

Des valeurs supplémentaires pour les énumérations doivent être définies dans les propriétés. Vous devez fournir un constructeur pour configurer ces propriétés.

public enum Yummy { 
    CANDY("yelow candy"), CAKE("cookie"); 
    private String value; 

    private Yummy(String value) { 
     this.value = value; 
    } 
    }; 

Et puis dans le code que vous pouvez utiliser CANDY.value ou remplacer la méthode toString().

1

Essayez ceci:

class Ideone 
{ 
    public static void main (String[] args) throws java.lang.Exception 
    { 
     for (Yummy yum : Yummy.values()) { 
      System.out.printf("%s, %s\n", yum, yum.getValue()); 
     } 
    } 
} 
enum Yummy { 
    CANDY("yelow candy"), 
    CAKE("cookie"); 

    private String value; 

    private Yummy(String value) { 
     this.value = value; 
    } 

    public String getValue() { 
     return this.value; 
    } 
} 
+0

[demo] (http://ideone.com/MmPxuj) – Arvind

Questions connexes