在 Java 代码中从 scala.collection.Seq<String> 转换为 java.util.List<String>

我从Java调用Scala方法。我需要从Seq到List进行转换。

我无法修改 Scala 方法的签名,因此我无法从asJavaCollectionscala.collection.JavaConversions._

关于我如何实现这一目标的任何想法?

使用 Scala 2.9.3


答案 1

使用 ,您走在正确的轨道上,但是此特定转换所需的方法是:JavaConversionsseqAsJavaList

java.util.List<String> convert(scala.collection.Seq<String> seq) {
    return scala.collection.JavaConversions.seqAsJavaList(seq);
}

更新:已弃用,但可以在JavaConverters中找到相同的函数。JavaConversions

java.util.List<String> convert(scala.collection.Seq<String> seq) {
    return scala.collection.JavaConverters.seqAsJavaList(seq);
}

答案 2

从 Scala 2.9 开始,你不应该使用隐式,因为它们已被弃用,很快就会被删除。相反,要像这样转换为java使用包(尽管它看起来不是很好):JavaConversionsSeqListconvert

import scala.collection.convert.WrapAsJava$;

public class Test {
    java.util.List<String> convert(scala.collection.Seq<String> seq) {
        return WrapAsJava$.MODULE$.seqAsJavaList(seq);
    }
}