【发布时间】:2018-08-11 06:20:53
【问题描述】:
我正在尝试通过 Scala 公开 Java 方法(有关原始 Java 方法的更多详细信息 - 它来自 Kafka)
这是原始的Java方法:
public void resume(Collection<TopicPartition> partitions)
如何向 Scala 中的方法公开和传递参数,以及在这种情况下使用哪个 Scala 集合?
我有类似的东西:
import org.apache.kafka.clients.consumer.{KafkaConsumer, OffsetAndMetadata}
import org.apache.kafka.common.TopicPartition
import collection.mutable.Map
import collection.JavaConverters._
//initialise consumer:
var consumer = createKafkaConsumer(config, subscriptions)
//accept a scala.collection.mutable.Map here
def commitSync(offsets: scala.collection.mutable.ArrayBuffer) = {
//and then convert it to a java
consumer.resume(offsets.asJava)
}
另外,如何在 Scala 中调用(并传递参数)这个方法?
谢谢。
【问题讨论】:
-
你在哪里调用
resume函数?你试过什么? -
我的错。已编辑。
-
看起来一切正常。你有错误吗?有什么问题?
-
你想达到什么目的?
-
它抱怨
Type ArrayBuffer takes Type parameter(在 IDE 中键入时)。我正在尝试通过 scala 公开 Java 方法,以便在 scala 中使用库的人可以访问 Java 方法。为了访问 Java Kafka 方法 - 我需要创建 Scala 方法,它将 1)具有良好的签名(尚不确定哪个是好的)2)制作工作示例 - 使用参数调用该 Scala 方法和 3)确保它可以调用底层 Java Kafka 方法并传递适当的参数...
标签: java scala apache-kafka