Може ли някой да обясни защо възниква следната грешка (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]()
има и много подобна грешка.