我有下面的类中的Java:隐式转换,超控,互操作性
public class GeneralClass {
public Integer getInt(Double d) {
return d.intValue();
}
}
我想在阶例如扩展此类
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:双人间):整数
可有人解释说,也许指出一个优雅的解决方案吗?
我认为你的答案是最接近我正在寻找的。你能否提供任何参考来支持它? – rarry
我写了一篇关于协变和逆变的小文章。 http://jatinpuri.com/2012/11/co-variance-contra-variance/希望它会有用。对于Implicits,http://www.artima.com/pins1ed/implicit-conversions-and-parameters.html是最好的参考。 – Jatin