以下Java 8代碼僅在啓用了日誌記錄功能的情況下,纔會將lambda傳遞給延遲執行generateMessage(...)函數的函數。Scala中Java 8供應商界面的等效代碼
等效的Scala代碼是什麼樣的?
producer.send(true,() -> generateMessage(1, "A Test Message"));
public void send(boolean enabled, Supplier<ProducerRecord> message) {
if (enabled) {
something.send(message.get())
}
}
懶惰不同於名稱。只有在第一次訪問時纔會評估一個懶惰參數。它們在Scala中不受支持,但可以通過結合使用名稱參數和惰性val來輕鬆模擬。 –