【发布时间】:2014-05-14 08:27:54
【问题描述】:
我有这门课:
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() 方法的重载,包括:
- put(String, Float)
- put(String, Double)
- put(String, Long)
- put(String, Int)
在为 Float、Int、Long 和 Date 版本编译时收到以下错误:
- 这两种方法都放在类型为 (x$1: String, x$2: Double)Unit 的类 ContentValues 中 [错误] 和方法放入类型为 (x$1: String, x$2: Float)Unit 的类 ContentValues
Scala 编译器怎么会被愚弄。
对我来说,不应该有歧义,因为可以获得完美的匹配。
这是 Scala 编译器中的错误还是设计使然?
我之前读过blog entry。
使用 Scala 2.10.4。我没有用 Scala 2.11.0 测试过。
【问题讨论】:
标签: scala primitive-types