2010-07-01 6 views
3

주석을 목록으로 제한 할 수 있습니까? 그래서 내가 두 개의 주석이 있다고 가정 해 봅시다 :목록에 주석 만 허용

(1) Foo.class 
(2) Bar.class 

목록을 선언 할 때, 난 단지 주석의 포함을 허용 할하지만 다른 모든 컴파일 오류가 발생합니다 :

List<Something> list = new ArrayList<Something>(); 
list.add(Foo.class); 
list.add(Bar.class); 
list.add(String.class); // bad 

위의 경우, 주석의 유형으로 제한 할 수 있습니까? 그 말은 어쨌든 그룹화 된 주석 만 허용한다는 의미입니다. 예를 들어 다음과 같은 특수 효과가있는 경우 :

나는 물에만 사는 주석을 허용하고 싶습니다. 따라서 List에 Lion.class를 추가하면 그의 토지를 사랑하는 방법으로 인해 컴파일 오류가 발생합니다.

답변

6

는 내가 제대로 질문을 이해 모르겠지만, 난 당신이 필요 같아요 두 번째 부분에 대해

List <Class <? extends Annotation>> x 
    = new ArrayList <Class <? extends Annotation>>(); 

: 나는 아무 생각, 주석 인터페이스가 서로를 확장 할 수 있기 때문입니다.

+0

감사합니다. 더 많은 연주를 한 후에 문제의 첫 번째 부분에 대한 해결책을 찾았습니다. 그리고 네, 두 번째 부분이 인터페이스로 인해 하위 유형을 허용하지 않기 때문에 가능하다고 생각하지 않았습니다. 응답 주셔서 감사합니다! – digiarnie

관련 문제