将 Java List 转换为 Scala Seq

2022-09-01 02:19:24

我需要实现一个在Java中返回Scala的方法。Seq

但是我遇到这个错误:

java.util.ArrayList cannot be cast to scala.collection.Seq

这是我到目前为止的代码:

@Override
public Seq<String> columnNames() {
    List<String> a = new ArrayList<String>();
    a.add("john");
    a.add("mary");
    Seq<String> b = (scala.collection.Seq<String>) a;
    return b;
}

但似乎没有提供转换为.scala.collection.JavaConvertersSeq


答案 1

JavaConverters是我需要解决这个问题的。

import scala.collection.JavaConverters;

public Seq<String> convertListToSeq(List<String> inputList) {
    return JavaConverters.asScalaIteratorConverter(inputList.iterator()).asScala().toSeq();
}

答案 2

JavaConversions应该工作。我想,你正在寻找这样的东西:JavaConversions.asScalaBuffer(a).toSeq()


推荐