다시 매개변수화되어야 하는 매개변수화된 메서드 작성

조회수 215회

다시 매개변수화되어야 하는 매개변수화된 메서드 작성

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로 마커 인터페이스를 정의하는 것이 좋습니다. 맞습니까?

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)