将 Java 列表转换为 Scala Seq

新手上路,请多包涵

我需要在 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.JavaConverters 似乎没有提供转换为 Seq 的可能性。

原文由 Fundhor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 737
2 个回答

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

 import scala.collection.JavaConverters;

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

原文由 Fundhor 发布,翻译遵循 CC BY-SA 4.0 许可协议

JavaConversions 应该可以。我认为,您正在寻找这样的东西: JavaConversions.asScalaBuffer(a).toSeq()

原文由 Dima 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题