IntelliJ-带粉色下划线的变量...是什么意思?

时间:2018-12-05 09:45:55

标签: java intellij-idea

请您解释一下,为什么第108行中的列表变量具有这种特定颜色并带有下划线?

enter image description here

如果我将相同的代码放在for-each中,而不是在foreach()中,则它看起来“正常”。

提前谢谢!

3 个答案:

答案 0 :(得分:2)

首先,您要使用lambda(语法糖)。第二件事是,如果不是来自lambda内部的变量,则会显示紫色下划线,以向用户显示您未使用局部变量。

例如:

public static void main(String[] args) {
    int a = 0;
    Consumer<String> stringConsumer = foo -> {
      foo += a;
    };

    for (int i = 0; i < 1; i++) {
        String s = " " + a;
    }
}

如果粘贴,您将看到a中只有foo += a带有紫色下划线,因为它是来自lambda之外的。

答案 1 :(得分:1)

标记entryDTS不是局部变量只是semantic highlighting

  

以前在KDevelop和其他一些IDE中引入的语义突出显示现在在IntelliJ IDEA中可用。它使用每个参数和局部变量的唯一颜色来扩展标准语法突出显示

答案 2 :(得分:0)

带下划线的参数表示局部变量在lambda表达式外部声明并在内部使用。 要禁用它,请转到:编辑器->配色方案-> Java->参数->禁用“隐式匿名类参数”

enter image description here