将Java列表转换为Scala Seq


问题内容

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

但是我遇到这个错误:

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.JavaConverters似乎没有提供将其转换为的可能性Seq


问题答案:

我需要JavaConverters来解决这个问题。

import scala.collection.JavaConverters;

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