8
Class<? extends Integer>
잘 컴파일하지만 상한 (아무것도 의지 적 extend
을)를로 사용할 이해가되지 않도록 Integer
은 최종 형식입니다 것입니다. 당신은 형식 매개 변수에 대한 상한으로 최종 유형을 사용하려고하면와일드 카드 최종 상한
, 당신은 컴파일러 경고를 받게됩니다 :
을 확장 할 수 없습니다? 왜 Java는 와일드 카드가 최종 상위 유형으로 묶일 수 있도록 허용합니까?유형 매개 변수 T는 최종 형 정수에 의해 제한되어서는 안된다. 마지막 유형은 더 왜 와일드 카드는 완벽하게 잘 수 있지만, 형식 매개 변수에 대한 경고를 던져에 대한 상한으로 최종 유형을 사용하는 것입니다
컴파일러가 자체적으로 '클래스 extends Integer>가 두 번째 예제에서 반환 된 경우'Integer'가 final이므로 Class과 호환됩니다. 그러나 나는 컴파일러가 그 가치보다 더 복잡해질 것이라고 생각합니다. 어쩌면 경고는 이클립스에만 해당된다. Eclipse Juno (JDT 3.8.0 포함). –
Jeffrey