이 토론의 관용구를 사용하고 있습니다. 인터페이스 인스턴스 메서드가 동일한 클래스의 인수 만 받아들이도록하려면 어떻게해야합니까? :
interface ITree<SELF extends ITree<SELF>>{
SELF getNode(int index);
void setNode(int index, SELF node);
}
내 질문은 ITree를 확장하는 Tree를 어떻게 구현할 수 있습니까? 내 현재 코드는 다음과 같습니다.
public class B {
private ITree tree;
public B (ITree tree){
this.tree = tree;
}
}
예상대로 Type을 추가해야한다는 경고가 표시됩니다. B를 사용하는 클래스가 어떤 Type을 사용해야하는지 결정하도록하고 싶습니다. 또는 그런 사소한 문제에 대해 제네릭을 전혀 사용하고 싶지 않습니다.
편집하다:
답변을 평가 한 후 해결책을 찾았습니다. 악마의 세부 사항은 다음 줄에 있습니다.
<T extends ITree<T>>
다음은 전체 소스 코드입니다.
public class B<T extends ITree<T>> {
private T tree;
public B (T tree){
this.tree = tree;
}
}
public class B<T extends ITree> {
private T tree;
public B (T tree){
this.tree = tree;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다