다시 매개변수화되어야 하는 매개변수화된 메서드 작성
조회수 225회
다시 매개변수화되어야 하는 매개변수화된 메서드 작성
Java에서는 Websockets를 실험하고 있습니다. 일반 메시지 처리기를 허용하는 메서드를 작성해야 합니다. 그래서 이런 식으로 작성했고 컴파일됩니다.
public <T, M extends MessageHandler> boolean addMessageHandler(Class<T> clazz, M messageHandler) {
}
그러나 더 구체적으로 설명하려고 하면 컴파일 시간 문제가 발생합니다.
public <T, M<T> extends MessageHandler> boolean addMessageHandler(Class<T> clazz, M<T> messageHandler) {
}
다음과 같은 오류가 발생합니다.
의도된 'T' '>' 기호를 확인할 수 없습니다. 이 문제를 어떻게 해결할 수 있습니까?
MessageHandler 인터페이스는 다음과 같으며 라이브러리 메서드이므로 변경할 수 없습니다.
public interface MessageHandler {
interface Partial<T> extends javax.websocket.MessageHandler {
void onMessage(T messagePart, boolean last);
}
interface Whole<T> extends javax.websocket.MessageHandler {
void onMessage(T message);
}
}
Java가 이러한 종류의 복합 제네릭을 지원하지 않는다는scaler의 기사를 보았습니다. 또한 제네릭 타입 T로 마커 인터페이스를 정의하는 것이 좋습니다. 맞습니까?
댓글 입력