如何从 Java 中的 Java 列表创建 scala.collection.immutable.Seq? [英] How to create a scala.collection.immutable.Seq from a Java List in Java?

查看:40
本文介绍了如何从 Java 中的 Java 列表创建 scala.collection.immutable.Seq?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试让 Akka 在我的 Java 项目中运行,但我被 Scala 的 Seq 类型的一个小问题所困扰.我可以将我的 ActorRef 的 Java 列表转换为 scala.collection.Seq,但是我尝试使用的 Akka API 需要一个 scala.collection.immutable.Seq.我怎样才能制作一个?

I'm trying to get Akka going in my Java project, and I'm hung up on a small issue with the Seq type(s) from Scala. I'm able to convert my Java List of ActorRef into a scala.collection.Seq, but the Akka API I'm trying to use requires a scala.collection.immutable.Seq. How can I make one?

代码:

static class Router extends UntypedLoadBalancer {
    private final InfiniteIterator<ActorRef> workers;

    public Router(List<ActorRef> workers) {
        Seq workerSeq = asScalaBuffer(workers);

        // how to get from the scala.collection.Seq above to the instance of
        // scala.collection.immutable.Seq required by CyclicIterator below?
        this.workers = new CyclicIterator<ActorRef>();
    }

    public InfiniteIterator<ActorRef> seq() {
        return workers;
    }
}

推荐答案

您可以使用 scala.collection.JavaConversions.asScalaBuffer 将 Java List 转换为 Scala Buffer,它有一个 toList 方法,Scala List 是一个 collection.immutable.Seq.

You can use scala.collection.JavaConversions.asScalaBuffer to convert the Java List to a Scala Buffer, which has a toList method, and a Scala List is a collection.immutable.Seq.

这篇关于如何从 Java 中的 Java 列表创建 scala.collection.immutable.Seq?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆