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

时间:2018-10-29 04:49:57

标签: java scala

我正在使用Java(scala.collection.Seq<A>)中Scala的Seq类,根据Scala documentation,有一个++操作数将两个Seq合并为一个。如何在Java中做同样的事情?

2 个答案:

答案 0 :(得分:3)

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的Java中使用JavaConverters方法将Scala集合转换为Java之前。

答案 1 :(得分:0)

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

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