2012-03-28 13 views
3

このデータをJavaの列挙型に保存するにはどうすればよいですか?このデータをJava enumにどのように保存する必要がありますか?

<select> 
    <option></option> 
    <option>Recommend eDelivery</option> 
    <option>Require eDelivery</option> 
    <option>Require eDelivery unless justification provided</option> 
</select> 

私は、Javaに新たなんだと

public enum Paperless { 
     "None" = null, 
     "Recommend eDelivery" = "Recommend eDelivery", 
     "Require eDelivery" = "Require eDelivery", 
     "Require eDelivery unless justification provided" = "Require eDelivery w/out justification" 
} 

のようなものを試してみました。しかし、これは動作しません。私は、このWebページにユーザーが見るオプションを要約するテキスト値を格納する可能性を検討しています。

答えて

8

the enum tutorial、具体的にはPlanetの例を見てください。あなたは同じことをすることができます。

public enum Paperless{ 
    NONE(null), 
    RECOMMENDED_DELIVERY("Recommended delivery"), 
    ...//put here the other values 
    REQUIRED_DELIVERY("Required delivery"); 
    private String name; 
    Paperless(String name){ 
    this.name = name; 
    } 
    public String getName(){ 
    return this.name; 
    } 
} 
+2

ほんの少しのポイントは:体(すなわち、直前 'プライベート文字列から列挙名を区切るセミコロンが必要です名前;この例では)。 –

+0

@TedHoppが完全に正しい。私のため... ...;放棄されました。スニペットを更新します。気づいてくれてありがとう – Robin

+0

私は別のクラスの一部としてenumを持っていたら、モデルを言う。現在のクラスの外からPaperlessオブジェクトにどのようにアクセスすればよいですか? – Webnet

0

メンバーの名前にスペースを入れることはできず、定数ではなくオブジェクトであるenum値を割り当てることはできません。あなたがしたい場合

0

列挙型の名前は識別子(例えば、1つの単語ではなく、文字列)

public enum Paperless { 
    None, 
    RecommendEDelivery, 
    ... 
} 

でなければなりませんあなたは彼らと一緒に文字列値を関連付けることができます(デフォルトを得ることができますが、あまりにもそれが等しいです識別子名には、name()メソッドを使用します)。Stringメンバーを列挙型に関連付けて、カスタムコンストラクタを提供します。

public enum Paperless { 
    None("None"), 
    RecommendEDelivery("Recommend eDelivery"), 
    ...; 

    private String myValue; 

    private Paperless(String name) {myValue=name;) 
} 

関連する文字列にアクセスするには、パブリックアクセサメソッドも提供する必要があります。

1

このような何かがあなたのケースのために働くことができます。

public enum PaperLess { 
    NONE("none"), 
    RECOMMEND("Recommend eDelivery"), 
    REQUIRE("Require eDelivery"), 
    REQUIRE_JUSTIFIED("Require eDelivery unless justification provided"); 

    private String value; 

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

    public String getValue() { 
     return value; 
    } 
} 
0
public enum Paperless { 
     NONE("None"), 
     RECOMMEND("Recommend eDelivery"), 
     REQUIRE("Require eDelivery"), 
     REQUIRE_UNLESS("Require eDelivery unless justification provided"),; 

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

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

    } 
0

のJavaの列挙型は、そのように構成されていません。

Java Tutorials: Enum Types

Java - Convert String to enum: #2

をチェックユアーズはこのようなものに見えるかもしれません:あなたは、あなたがしようとしている方法でJavaでの列挙値に文字列を代入することはできません

public enum Paperless { 
    NONE(""), 
    RECOMMEND("Recommend eDelivery"), 
    REQUIRE("Require eDelivery"), 
    REQUIRE_UNLESS("Require eDelivery unless justification provided"); 

    private String text; 

    Paperless(String text) { 
    this.text = text; 
    } 

    public String getText() { 
    return this.text; 
    } 
} 
1

を。

行う方法、それは次のようになります。簡単にJavaの初心者をトリップ

public enum Paperless { 
     None(null), 
     RecommendedDelivery("Recommended Delivery"), 
     RequireEDelivery("Require eDelivery"), 
     RequireEDeliveryUnlessJustification("Require eDelivery unless justification provided"); 

     private final String value; 

     Paperless(String value) { 
     this.value = value; 
     } 

     private String enumValue() { return value; } 

     public static void main(String[] args) { 
     for (Paperless p : Paperless.values()) 
      System.out.println("Enum:" + p + "; Value:" + p.enumValue()); 
     } 
} 
関連する問題