我想从我的Java代码中构造一个scala.collection.immutable.List
类型的对象。当我尝试使用new
创建它时,我收到一条错误消息,指出scala.collection.immutable.List
是抽象的。我该怎么做呢?
答案 0 :(得分:2)
使用List
随播广告对象构建List
。
List(1, 2, 3)
使用::
运算符构建列表。
val list = 1 :: 2 :: Nil
请参阅scala文档以获取更多信息
https://www.scala-lang.org/api/current/scala/collection/immutable/List.html
答案 1 :(得分:0)
使用Java工作scala.collection.immutable.List
类不是很友好。你仍然可以从Java使用它。相当于Scala
val list = 3 :: 2 :: 1 :: Nil
会像
import scala.collection.immutable.List;
import scala.collection.immutable.Nil$;
import scala.collection.immutable.List$;
import scala.collection.immutable.$colon$colon;
scala.collection.immutable.List<Integer> list = new $colon$colon(3, new $colon$colon(2, new $colon$colon(1, Nil$.MODULE$)));
在许多情况下,另一种更简单的方法可能是首先构造Java集合,然后使用scala.collection.JavaConverters
将其转换为Scala。例如:
import scala.collection.JavaConverters;
java.util.List<Integer> javaList = new java.util.ArrayList<Integer>();
javaList.add(3);
javaList.add(2);
javaList.add(1);
scala.collection.immutable.List<Integer> scalaList = JavaConverters.collectionAsScalaIterable(javaList).toList();