我在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);