簡體   English   中英

Scala-如何將回調傳遞給方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM