2010-12-04 5 views
9

私のアプリケーションでは、Stringのスイッチケースステートメントが必要です。switch(java.lang.Object)をjavaにできますか?

Object list1 = "list1"; 
    Object list2 = "list2"; 
    Object list3 = "list3"; 

    Object option = "list1"; 
    switch (option) { 
     case list1: // Do something 
     case list2: // Do something 
     case list3: // Do something 
     default: // Do something 
    } 

それが持つことが可能です:

私はこのようなものが必要?

EDIT:

は、それがより良いn条件は、むしろifelseと一緒に行くためのスイッチケースを使用することですか?コメントしてください

+0

多型を使用することもできます。http://stackoverflow.com/questions/1425659/alternative-to-switch-case-in-java/1425684#1425684 – OscarRyz

答えて

11

文字列を切り替えるので、私は文字列がコンパイル時にわかっていると仮定します。その場合、列挙型を使用できます。

public enum MyStrings{ 

     LIST1, LIST2 
    } 

その後

switch(MyStrings.valueOf(option)){ 

     case LIST1: do something; break; 
     //etc. 
    } 
+0

ありがとうございます:)有用です。質問の私の更新を見てください。 –

3

この質問を参照してください:Why can't I switch on a String?

現在サポートされているが、Java 7に

編集であると予想されていない:実際にはおそらく、任意のObject

ない、唯一Stringのように見えます各オブジェクトは、switch文に入れようとしているロジックを含むメソッドを実装する必要がありますか?

0

いいえ、できません(試してみてください)。しかし、これを必要とするならば、おそらくHashMapのようなMapがあなたの目的に合っているでしょう。

0

いいえ、HashMapのような他のコレクションを使用するか、同じことを行う要素の配列を作成し、JDKでは、インデックス

0

スイッチはStr整数、その​​他のプリミティブなデータ型がありますが、オブジェクトの比較では成功していません。

関連する問題