考虑以下作为图像附加的代码:
代码执行无限循环,但这不是重点。关键是如果我在for
循环中进行递归,那么IDEA可以在左边显示一个符号。
如果我在forEach
lambda表达式中进行递归,则没有任何符号。
如果可以在两种情况下都显示它会很舒服。 这是一个错误,还是有任何原因?
答案 0 :(得分:1)
正如@Jesper在他的评论中正确指出的那样,并非每个lambda都是从作为参数传递的函数中同步调用的。想象一下,示例中使用的函数是invokeLater
而不是forEach
。
由于IntelliJ不知道将lambdas作为参数的特定库函数的语义,因此它不会突出显示任何lambdas中的递归调用。