[英]Scala - how to pass Callback to a method
我正在嘗試通過Scala(來自Kafka: https : //kafka.apache.org/10/javadoc/index.html? org/apache/kafka/clients/consumer/ KafkaConsumer.html )公開Java方法。
這是原始的Java方法:
public void commitAsync(OffsetCommitCallback callback)
如何將callback
傳遞給Scala中的方法? 我有類似的東西:
def commitAsync() = {
consumer.commitAsync(OffsetCommitCallback callback)
}
謝謝。
獎勵積分-例如使用MockitoSugar進行測試看起來如何?
您可以像這樣處理回調:
def commitAsync() = {
consumer.commitAsync(new OffsetCommitCallback() {
def onComplete(m: java.util.Map[TopicPartition, OffsetAndMetadata], e: Exception) {
//...
}
})
}
OffsetCommitCallback是一個接口 (與Scala中的特征 “相似”),因此您可以匿名初始化實例。
這是Spark項目中的快速演示。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.