如何在 Java 中执行 Scala 的 Seq ++ 操作数



我在Java中使用Scala的Seq类(scala.collection.Seq<A>(,根据Scala文档,有一个++操作数将两个Seq合并为一个。如何在Java中执行同样的操作?

Scala标识符++在JVM上被转换为$plus$plus。不幸的是,您不能调用seq1.$plus$plus(seq2),因为++的真正签名是

def ++[B >: A, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Repr, B, That]): That

从Java提供CanBuildFrom参数在技术上是可行的,但不是你想做的

因此,我建议在涉及CanBuildFrom时,先使用JavaConverters方法将Scala集合转换为Java,然后再在Java中使用它们。

要在java中执行同样的操作,可以使用addAll方法。假设你有两个列表listOne和listTwo。

List<T> resultList = new ArrayList<T>(listOne);
resultList.addAll(listTwo);

最新更新