class A
이
및 A
를 확장하는 class B
도움이됩니다.자바 제네릭
나는 이라는 추상 클래스와 X
을 확장하는 콘크리트 클래스 Y
을 가지고 있습니다. 나는 다음과 같은 작업을 수행 할 때
public Collection<B> getStuff();
: 나는 다음과 같은 서명 추상 메소드를 구현 Y
에서
public abstract Collection<? extends A> getStuff();
: X
에서
나는 다음과 같은 서명을 추상적 인 방법이있다 : C에서 추가 (캡처) :
classX.getStuff().add(B)
그것은 다음과 같은 불만을 주었다 ollection는
어떤 도움을 주시면 감사하겠습니다을 B로 적용 할 수 없습니다.
신고 내용은 무엇입니까? –
문제가'add()'메서드에 있다면'getStuff()'에 대한 서명에 대해 이야기하고있는 이유는 무엇입니까? 또는'classX'는'getStuff()'에 의해 반환 된 콜렉션입니까? – unholysampler
[공분산 및 반항성] (http://en.wikipedia.org/wiki/Covariance_and_contravariance_ (computer_science) #Java)을 읽어 볼 수 있습니다. –