它完全有意義的返回java.util.List[T]
其是Java接口,並且可以具有ArrayList[T]
或LinkedList[T]
如實現。
scala> val scalaList = List(1,2,3)
scalaList: List[Int] = List(1, 2, 3)
scala> import scala.collection.JavaConverters._
import scala.collection.JavaConverters._
scala> scalaList.asJava
res22: java.util.List[Int] = [1, 2, 3]
在我看來,它需要被轉換爲ArrayList[T]
或任何你想自己LinkedList[T]
。我能想到的
一種方法是
scala> new java.util.ArrayList[Int](scalaList.asJava)
res27: java.util.ArrayList[Int] = [1, 2, 3]
或
scala> new java.util.LinkedList[Int](scalaList.asJava)
res28: java.util.LinkedList[Int] = [1, 2, 3]
更好的版本,這將是
scala> def toArrayList[T](input: List[T]): java.util.ArrayList[T] = new java.util.ArrayList[T](input.asJava)
toArrayList: [T](input: List[T])java.util.ArrayList[T]
scala> toArrayList(List(1000, 2000, 3000))
res33: java.util.ArrayList[Int] = [1000, 2000, 3000]
而最好的版本是,寫下暗示其方法
class AsArrayList[T](input: List[T]) {
def asArrayList : java.util.ArrayList[T] = new java.util.ArrayList[T](input.asJava)
}
implicit def asArrayList[T](input: List[T]) = new AsArrayList[T](input)
List(1000, 2000, 3000).asArrayList
ArrayList的''是在執行Java列表''的。有意義的是返回'List '。 –
prayagupd
列表是代表任何列表的接口類型,因此它是大多數人用作參數而不是特定實例的接口類型。在沒有特定評論的情況下,特別是像ArrayList這樣的特定實例,至少應該記錄在案,並有充分的理由。 –
midor