java - 如何在Scala中为Kafka(commitSync with partitions)公开Java方法?
问题描述
我正在尝试通过 Scala 公开 Java 方法(有关原始 Java 方法的更多详细信息 - 它来自Kafka)
这是原始的 Java 方法:
public void commitSync(Map<TopicPartition,OffsetAndMetadata> offsets)
如何公开参数并将参数传递给Scala中的方法?我有类似的东西:
def commitSync() = {
consumer.commitSync(...)
}
谢谢。
解决方案
您的 Scala 代码段看起来是正确的,这就是我将如何填写其余部分的方式:
import org.apache.kafka.clients.consumer.{KafkaConsumer, OffsetAndMetadata}
import org.apache.kafka.common.TopicPartition
import collection.mutable.Map
import collection.JavaConverters._
//initialise your consumer the way you want
val consumer = createKafkaConsumer(config, subscriptions)
//you could accept a scala.collection.mutable.Map here
def commitSync(offsets: Map[TopicPartition, OffsetAndMetadata]) = {
//and then convert it to a java.util.Map
consumer.commitSync(offsets.asJava)
}
推荐阅读
- openfire - Openfire:如何添加和自动更新letsencrypt证书?
- python - 如何遍历 .dat 文件并将每组行的特定列附加到数组
- python-3.x - 如何将此字典转换或转换为字符串字典或不同类型的字典
- html-email - 如何使用 CSS 使文本在移动设备上居中
- javascript - 如何将数字显示为**** ****
- javascript - 点击链接后移动导航栏不会自动折叠
- c# - 如何检索元素父容器的属性
- html - 悬停时更改表格边框
- google-maps - Google street view is not showing on a website
- angular - RouterLink 不会在单击时导航到组件,而是在加载同一模块中的其他组件后导航