我有這個類:斯卡拉不知道哪個超載與原語類型的包裝紙
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重載解析本質上是特殊的;語言在不同的邊緣情況下具有不同的規則。 –