public class TowerOfHanoi<E> {
private class Disk<T extends Comparable<E>> {
}
private class Peg<S extends Disk<T extends Comparable<E>>> extends Stack<Disk<T extends Comparable<E>>> {
}
}
위의 코드에서 다음 컴파일 오류가 발생합니다.자바 내부 클래스에서 바운드 형식 매개 변수를 정의하는 방법
토큰에구문 오류는 "확장", 나는 페그의 정의를 변경하는 경우 다음과 같이 작동,
그러나 예상 :
는private class Peg<T extends Disk<? extends Comparable<E>>> extends Stack<Disk<? extends Comparable<E>>> {
}
나는 싶지 않아 와일드 카드를 사용하십시오. 이를 명명 된 매개 변수로 변경하는 방법이 있습니까?
내 이해는 디스크 <비교 경우에만 해당 받아 들일거야 및 하위 클래스가 있습니다. 내 편집을 참조하십시오. –
아니요. 'Comparable'을 확장하는 모든 클래스를 허용합니다. 'Disk' 구현체는'Disk >'으로 정의 되어야만합니다. 그러나 여러분은'Comparable '의 서브 클래스를 사용할 수 있습니다. –
Bohemian
디스크를 비 제네릭 타입으로 만들었습니다. 결국, 이것은 실제 알고리즘보다 시간이 많이 걸렸으므로 불필요하게 복잡해진 것처럼 보였습니다. 나는 당신의 대답을 받아 들일 것입니다. –