2016-08-12 9 views
0

方法再帰を認識することができない私は画像として添付し、次のコードを考えてみましょう:のIntelliJ IDEAはforEachの呼び出し

enter image description here

コードは無限ループを行いますが、それはポイントではありません。要点は、forのループ内で再帰を行うと、IDEAは左側に記号を表示できることです。

forEachラムダ式の中で再帰を行うと、兆候はありません。

どちらの場合でも表示できれば非常に快適です。 これはバグですか、それとも何らかの理由がありますか?

+1

2番目のケースで直接再帰はありません。 IntelliJは 'IntStream.range(0、10)'が返すオブジェクトの 'forEach'メソッドがラムダで何をするのか分かりません。 – Jesper

答えて

1

彼のコメントで@Jesperが正しく言っているように、すべてのラムダはパラメータとして渡される関数から同期して呼び出されるわけではありません。この例で使用されている関数がinvokeLaterで、forEachではないとします。

IntelliJはラムダをパラメータとする特定のライブラリ関数のセマンティクスを認識していないため、任意のラムダの再帰呼び出しを強調表示しません。

関連する問題