Mon implémentation d'une méthode getHandler
, qui est définie sur une interface Java, a échoué, et je ne sais pas pourquoi. Voici la signature de la méthode:Implémentation d'une méthode d'interface Java dans Scala
<H extends EventHandler> H getHandler(Type<H> type, int index);
Ma mise en œuvre Scala est:
def getHandler[H <: com.google.gwt.event.shared.EventHandler]
(aType: Type[H], index: Int): H
= new com.google.gwt.event.shared.EventHandler() {}
... mais le compilateur me donne ce message:
type mismatch;
found: java.lang.Object with com.google.gwt.event.shared.EventHandler
required: H
Où ai-je commis une erreur?
... et encore plus succinctement: nouveau com.google.gwt.event.shared.EventHandler() {}. AsInstanceOf [H] – David
Il pourrait le faire compiler, mais c'est un conseil terrible. Le code est incorrect et entraînera des problèmes s'il est implémenté de cette façon. –
Oui, je suis d'accord, comme conseil c'est terrible. J'ai regardé http://www.docjar.com/html/api/com/google/gwt/event/shared/HandlerManager.java.html et j'ai décidé que j'allais simplement répondre pourquoi il ne compile pas. Je me sens mal c'est la réponse acceptée. – huynhjl