我正在尝试从Java代码实例化Kafka Scala案例类,它具有以下签名:
case class OffsetFetchRequest(groupId: String,
requestInfo: Seq[TopicAndPartition],
versionId: Short = OffsetFetchRequest.CurrentVersion,
correlationId: Int = 0,
clientId: String = OffsetFetchRequest.DefaultClientId)
除了Seq [TopicAndPartition]之外,我能够发送所有请求的参数.
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.