Ich versuche, eine generische Java-Schnittstelle in Scala zu implementieren. Ich habe betrachtet: How do I extend Java interface containing generic methods in Scala? Und Scala: Overriding Generic Java Methods IIScala: überschreiben Methoden von Java-Schnittstelle
Aber noch konnte ich nicht eine Antwort finden. Hier ist die Signatur der Methode von Spring Web:
T read(Class<? extends T> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException;
Ich habe versucht, die folgenden in scala:
@throws(classOf[IOException])
@throws(classOf[HttpMessageNotReadableException])
override def read[T](clazz : Class[_ <: T], inputMessage : HttpInputMessage) : T ={
}
Aber ich erhalte eine Fehlermeldung, dass diese Methode nichts außer Kraft setzt. Wenn ich den Typ folgendermaßen lösche:
override def read(clazz : Class[_], inputMessage : HttpInputMessage) : AnyRef ={
Er markiert die Methode als überschrieben. Meine Frage ist, wie kann ich Typsicherheit hier halten und zwinge es, die Schnittstellenmethode zu überschreiben?
Grüße
EDIT
Die Feder-Schnittstelle:
public interface HttpMessageConverter<T> {
T read(Class<? extends T> clazz,
HttpInputMessage inputMessage)
throws IOException,
HttpMessageNotReadableException
}
Können Sie einen Link für den Quellcode von Spring Web bereitstellen, in dem sich die Methode befindet, die Sie zu überschreiben versuchen? – pedrofurla