【发布时间】:2014-02-10 15:48:12
【问题描述】:
谁能解释为什么会出现以下错误(Scala 2.10.3)?
scala> new java.util.ArrayList[Integer]()
res0: java.util.ArrayList[Integer] = []
scala> res0.add(0)
res1: Boolean = true
scala> java.util.Collections.binarySearch(res0, 0)
<console>:9: error: type mismatch;
found : java.util.ArrayList[Integer]
required: java.util.List[_ <: Comparable[_ >: Any]]
java.util.Collections.binarySearch(res0, 0)
^
以下确实有效:
scala> java.util.Collections.binarySearch[Integer](res0, 0)
res4: Int = 0
编译器会抱怨一个特定的类型,直到我更明确了解那个不正确的类型,然后它才会接受它,这似乎很奇怪。
编辑:
还请注意如果您将第一步更改为:
scala> new java.util.ArrayList[Int]()
还有一个非常相似的错误。
【问题讨论】:
标签: java scala type-inference scala-collections