java - Scala 中 Java 8 Supplier 接口(interface)的等价物

标签 java scala lambda java-8

以下 Java 8 代码将一个 lambda 传递给一个函数,该函数仅在启用日志记录时才推迟 generateMessage(...) 函数的执行。

等效的 Scala 代码是什么样的?

producer.send(true, () -> generateMessage(1, "A Test Message"));

public void send(boolean enabled, Supplier<ProducerRecord> message) {
  if (enabled) {
    something.send(message.get())   
  }
}

最佳答案

这是可编译和可运行的代码。希望对您有所帮助。

object HelloWorld {
   def main(args: Array[String]) = {

        send(true, () => "Foo")

        def send(enabled: Boolean, supplier: () => String) =
            if (enabled) somethingSend(supplier())

        def somethingSend(message: String) = println(message)
   }
}

关于java - Scala 中 Java 8 Supplier 接口(interface)的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46339225/

相关文章:

java - Android TabLayout setOnTabSelectedListener 不工作

java - 带 JXLS 2 的 SXSSF 变压器

java - Android 模拟器运行不正常

scala - IntelliJ - 远程 Scala 编译服务器

scala - Spark : how to run spark file from spark shell

javascript - Akka.js 测试套件 : compilation error on simple example

sorting - 对多个比较器项目进行排序

java - servlet 中的编码(java)

java - 使用Java和AWS Lambda函数解析JSON错误

c++ - 为什么 C++20 不允许使用显式类型调用泛型 lambda?