1
我有很好的功能代碼大致下一形狀(ComponentRegistry.java
):我可以給lambda一個名字嗎?
public void doExport() {
config.exports().forEach((key, type) -> {
...
}
}
它,當它涉及到的log4j聲明它會產生一個輸出的問題:
ComponentRegistry lambda$doExport$1
如果實際的方法名稱來在「lambda」關鍵字之後,然後有兩個有關匿名類的提示($
)。它不如直接方法調用記錄。
我想知道是否有人在log4j輸出或堆棧跟蹤中正確標記lambda表達式,因爲它會很棒。
爲什麼不簡單地創建一個以'key'和'type'爲參數並在forEach中調用它的方法? – Fabian
Lambdas的名稱不能是Java 8.你在trace中看到的實際上是java編譯器爲該lambda下的lambda創建的方法的名稱,它可能會更改。正如@Fabian建議的那樣,函數接口的命名實現可以使用方法引用完成。 –
你必須在log4j中使用類名嗎?如何使用文件名呢? – Arkadiy