2011-08-07 16 views
4

リストに列挙型属性を追加する必要がある場合は、リストをどのように宣言しますか?リストに列挙型を追加する

List<Country> l = new ArrayList<Country>(); 
l.add(Country.USA); // That one's for you Code Monkey :) 
+0

は、Javaのタグを追加し、私は – MByD

+0

JavaやC#間違っていた場合、それを削除します?ご指定ください。 –

答えて

4

の場合:必要なもの

List<String> l = new ArrayList<>(); 
l.add(Country.USA); 

があるべき代わりList<String>?

+1

なぜl.add(Country.USA.toString()) – Victor

10

のに使用される:

public enum Country{ USA, CANADA; } 

は私がやりたい:私たちは、列挙型クラスがあるとしましょう文字列型でこれを使用したい場合:

あなたが どんな列挙型を保持したい場合

l.add(Country.USA.name());

そうMByD

の答えは
+0

それはCとは違うでしょうか?ちょうど好奇心が強い –

+0

C#はまったく分かりません。 OPの以前の質問によると、それはjavaです... – MByD

+0

+1正解 –

2

、これを使用する:

List<? extends Enum<?>> list = new ArrayList<Country>(); 
Enum<?> someEnumValue = list.get(0); // Elements can be assigned to Enum<?> 
System.out.println(someEnumValue.name()); // You can now access enum methods 
+0

あなたは 'List <? 'に要素を追加することはできません。 Enum > 'を拡張します。これには 'List >'を使います。 –

+0

@Paulo良い点ですが、 '型の不一致:ArrayList からリストに変換できません>を割り当てることはできません。 ''は、MyEnumClassオブジェクトではないもの(型安全性に違反するものではありません)を含めることはできません。これは有用ではないかもしれません:( – Bohemian

+0

もちろん、 'new ArrayList > –