여기 처음 질문을 올리므로 모든 것이 올바르게 게시되기를 바랍니다.구현시 제네릭 메소드의 유형을 어떻게 보장합니까?
저는 과제를 수행 중이며이 문제에 조금 갇혀 있습니다. 인터페이스, 모든 인터페이스 GeometricShape를 구현하는 것이 모양 (원형, 원뿔, 구, 및 사각형)의 네 개의 클래스 ....
이public interface GeometricShape {
public void describe();
}
문제는 (새로운 방법이라는 초대형를 추가 할 수 말한다는)이있는 현재 모양을 취하고 제네릭을 사용하여 크기가 두 배인 동일한 유형의 모양을 반환합니다. 힌트는 다음과 같이 인터페이스를 시작으로 일반화한다고 말합니다.
public interface GeometricShape<T extends GeometricShape<T>> {
public void describe();
public T supersize();
}
T는 기하학적 인 모양 일 수 있습니다. 그러나 이렇게하면 Rectangle.supersize()가 원을 반환하는 것이 가능합니다. 이 문제가 발생하지 않도록하려면 어떻게해야합니까 (예 : Rectangle.supersize()는 인터페이스 코드 만 수정하여 Rectangle 만 반환 할 수 있습니까?