我有这个类:斯卡拉不知道哪个超载与原语类型的包装纸
implicit class Escritor(cv: ContentValues) extends AnyVal {
def pon[T](col: Columna[T], valor: Int) = {
cv.put(col.nombre, valor)
cv
}
def pon[T](col: Columna[T], valor: Long) = {
cv.put(col.nombre, valor)
cv
}
def pon[T](col: Columna[T], valor: Float) = {
cv.put(col.nombre, valor)
cv
}
def pon[T](col: Columna[T], valor: Double) = {
cv.put(col.nombre, valor)
cv
}
def pon[T](col: Columna[T], valor: Date) = {
cv.put(col.nombre, valor.getTime) // getTime returns long
cv
}
}
的ContentValues class有许多重载的put()方法,包括:
- 放(串,浮动)
- 认沽(字符串,双人间)
- 认沽(字符串,龙)
- 认沽(字符串,整数)
我编译浮子时收到以下错误,中等,长和日期的版本:
- 两种方法放在类型的类ContentValues(X $ 1:字符串,X $ 2:双人间)单位 [错误]和方法,把在课堂ContentValues式(X $ 1:字符串,X $ 2:浮动)单位
如何Scala编译器上当。
对我来说,应该没有困难,因为可以获得完美的匹配。
这是Scala编译器中的错误还是设计?
我以前读过blog entry。
使用Scala 2.10.4。我没有测试过Scala 2.11.0。
我觉得在Java中你没有这种问题。 –
@ david.perez重载解析本质上是特殊的;语言在不同的边缘情况下具有不同的规则。 –