2011-08-07 7 views
4

열거 형 특성을 목록에 추가해야하는 경우 목록을 어떻게 선언합니까?목록에 열거 형 추가

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

자바 태그를 추가, 내가 – MByD

+0

자바 나 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 질문에 따르면, 그것은 자바입니다 ... – 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에 추가 할 수 있습니까? extends Enum >'을 확장합니다. 이를 위해'List >'을 더 잘 사용하십시오. –

+0

@Paulo 좋은 지적이지만, 다음과 같이 지정할 수 없습니다 :'타입 불일치 : ArrayList ~리스트 >'로 변환 할 수 없습니다. 아마도이 아이디어는 유용하지 않을 것입니다 : ( – Bohemian

+0

물론,'new ArrayList()'을 사용할 것입니다.'ArrayList '는 MyEnumClass 객체가 아닌 (타입 안전을 위반하지 않는) 어떤 것도 포함 할 수 없습니다. –