제 신청서에는위원회가 있습니다. 이사회는 세포로 구성됩니다. 각 셀은 int 값을가집니다. 보드를 확장 할 보드 유형은 거의 없습니다. 보드의 각 유형은 셀을 다르게 나타냅니다. 예를 들어 목록을 사용하고 anothr은 트리를 사용합니다.java "일반 제네릭 유형"
그래서이 시도되는 것입니다 :
public abstract class Board<T> {
T<Cell> cells; //error - The type T is not generic; it cannot be parameterized with arguments <Cell>
protected abstract void setValues(T<Integer> values);
}
불행하게도, 나는 T 제네릭 형식 수 없습니다. 어떻게 구현합니까?
아마도 클래스 서명에서'T extends Collection'을 만들까요? 그렇게하면'List' 또는'Tree'를 사용할 수 있습니까? 제 제안에 너무 자신감이 없으므로 필자는 필요한 경우 비판을 원합니다. –
'T '에 사용할 클래스의 예제를 제공 할 수 있습니까? 일반적으로,'Board'에 대한 일반적인 선언에 매개 변수화 된 유형을 중첩 시키겠다. 그러나 제한이없는'T' 매개 변수를 일반화 할 것으로 예상하는 것은 의미가 없다. 'T '가'정수형'이면? 게다가, 이것은 단지'Board'를 서브 클래 싱하는 것이 generic 파라미터를 갖는 것보다 더 합리적인 경우입니까? 결국, 클라이언트는 표현의 차이를 인식하고 있어야합니다. – chrylis
두 개의 유스 케이스를 스케치하는 것이 정말 도움이 될 것입니다.특히'setValues' 메소드를 어떻게 사용할 것인지, 보드가 내부적으로'셀'에 접근해야하는지, 'T'타입이 될 수 있는지 ('Tree '라고 할 때'TreeSet'을 의미합니까? 'Collection'이면 상당히 사소한 것입니다 ...) – Marco13