Я пытаюсь реализовать общий интерфейс Java в scala. Я посмотрел на: How do I extend Java interface containing generic methods in Scala? И Scala: Overriding Generic Java Methods IIScala: переопределение методов из интерфейса Java
Но все-таки я не мог найти ответ. Вот метод подписи от Spring Web:
T read(Class<? extends T> clazz, HttpInputMessage inputMessage)
throws IOException, HttpMessageNotReadableException;
Я попытался следующие в Скале:
@throws(classOf[IOException])
@throws(classOf[HttpMessageNotReadableException])
override def read[T](clazz : Class[_ <: T], inputMessage : HttpInputMessage) : T ={
}
Но я получаю ошибку о том, что этот метод не отменяет ничего. Если я удалю этот тип, выполните следующие действия:
override def read(clazz : Class[_], inputMessage : HttpInputMessage) : AnyRef ={
Он помечает метод как перезаписываемый. Мой вопрос: как я могу сохранить безопасность типов здесь и заставить его переопределить метод интерфейса?
С уважением
EDIT
Пружинный интерфейс:
public interface HttpMessageConverter<T> {
T read(Class<? extends T> clazz,
HttpInputMessage inputMessage)
throws IOException,
HttpMessageNotReadableException
}
Не могли бы вы предоставить ссылку на исходный код Spring Web, где используется метод, который вы пытаетесь переопределить/реализовать? – pedrofurla