微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将Java Collection / List转换为Scala seq?

我正在尝试从Java代码实例化Kafka Scala案例类,它具有以下签名:

case class OffsetFetchRequest(groupId: String,
                          requestInfo: Seq[TopicAndPartition],
                          versionId: Short = OffsetFetchRequest.CurrentVersion,
                          correlationId: Int = 0,
                          clientId: String = OffsetFetchRequest.DefaultClientId)

除了Seq [TopicAndPartition]之外,我能够发送所有请求的参数.

在Java方面,我有以下代码

OffsetFetchRequest offsetFetchRequest = new OffsetFetchRequest(
                                                "someGroup", 
                                                topicAndPartitions, 
                                                (short)1, 
                                                1, 
                                                "clientId");

正如所料,java.util.List与Scala Seq不兼容.但是,我在JavaConversions和JavaConverters中尝试了所有类型的转换方法,我找不到适合这种情况的任何东西.

如何从普通的java.util.List甚至java.util.Collection创建Scala seq?或者我接近这个错误

解决方法:

使用scala.collection.JavaConversions.asScalaBuffer将Java列表转换为Scala缓冲区,其中toList方法可用于转换为不可变seq.

另外,您也可以使用CyclicIterator.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐