0
考慮下面的代碼我作爲附加圖像的方法遞歸:IntelliJ IDEA的無法識別在foreach調用
的代碼做一個無限循環,但這不是問題的關鍵。問題是,如果我在for
循環內進行遞歸,那麼IDEA可以在左邊顯示一個符號。
如果我在forEach
lambda表達式中進行遞歸,那麼沒有符號。
如果可以在兩種情況下都顯示它會很舒服。 這是一個錯誤,還是有任何理由?
考慮下面的代碼我作爲附加圖像的方法遞歸:IntelliJ IDEA的無法識別在foreach調用
的代碼做一個無限循環,但這不是問題的關鍵。問題是,如果我在for
循環內進行遞歸,那麼IDEA可以在左邊顯示一個符號。
如果我在forEach
lambda表達式中進行遞歸,那麼沒有符號。
如果可以在兩種情況下都顯示它會很舒服。 這是一個錯誤,還是有任何理由?
正如@Jesper在他的評論中指出的那樣,並非每個lambda都是從作爲參數傳遞給它的函數同步調用的。想象一下,示例中使用的函數是invokeLater
而不是forEach
。
由於IntelliJ不知道使用lambda作爲參數的特定庫函數的語義,因此它不會突出顯示任何lambda表達式中的遞歸調用。
在第二種情況下沒有直接遞歸。 IntelliJ不知道'IntStream.range(0,10)'返回的對象上的'forEach'方法將用lambda來做什麼。 – Jesper