【发布时间】:2018-05-03 17:40:15
【问题描述】:
我正在尝试从 2 个 Java 类创建 Scala 映射:
TopicPartition(java.lang.String topic, int partition)
OffsetAndMetadata(long offset)
这看起来正确吗?
val topicPartition = new TopicPartition("sometopicname", 99)
val offsetAndMetadata = new OffsetAndMetadata(999999L,"tette")
val mapTopicOffset = Map(topicPartition -> offsetAndMetadata)
还需要创建一个接受此地图作为输入参数的方法。
试过类似的东西:
def commitSync(offsets: Map[TopicPartition, OffsetAndMetadata] ) = {
}
出现错误:
Error:(239, 37) type mismatch;
found : Map[org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata] (in scala.collection.immutable)
required: Map[org.apache.kafka.common.TopicPartition,org.apache.kafka.clients.consumer.OffsetAndMetadata] (in java.util)
verify(kc, times(1)).commitSync(mapTopicOffset)
有没有办法提供重载方法来获取 Scala 映射? (不知道怎么写)
或者也许一切都应该以不同的方式重写(从创建对象等开始)?
【问题讨论】:
-
如果您查看错误,您会发现当您需要
java.util.Map时,您传递了scala.collection.immutable.Map。这两种类型不一样。 -
我可以看到。如何解决? (我对 scala 和 java 很陌生)