У меня есть следующий класс в Java:неявного преобразования, переопределение, совместимость
public class GeneralClass {
public Integer getInt(Double d) {
return d.intValue();
}
}
Я хотел бы расширить этот класс в Scala, например,
import scala.collection.JavaConversions._
import scala.collection.JavaConverters._
class SpecializedClass extends GeneralClass {
override def getInt(d: Double): Int = {
d.intValue()
}
}
Проблема заключается в том, что ни scala.Double, ни scala.Int автоматически преобразуются в соответствующие типы Java.
Редактировать Сообщение об ошибке:
метод GetInt не отменяет ничего. Примечание: супер классы класса SpecializedClass содержат следующие не конечные элементы с именем GetInt: Защиту GetInt (d: Double): Integer
Может кто-нибудь объяснить, что и, возможно, указать на элегантное решение?
Я думаю, что ваш ответ ближе всего к тому, что я искал. Не могли бы вы предоставить какие-либо ссылки для его резервного копирования? – rarry
Я написал небольшое сообщение о ковариации и контравариантности. http://jatinpuri.com/2012/11/co-variance-contra-variance/ надеюсь, что это будет полезно. Для Implicits, http://www.artima.com/pins1ed/implicit-conversions-and-parameters.html - лучшая ссылка. – Jatin