首先,您正在使用语法糖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;
}
}
如果你粘贴这段代码,你会发现只有 foo += a
中的 a
被标记为紫色下划线,因为它来自于 lambda 外部。这只是使用语义高亮标记entryDTS
不是一个本地变量
(来源: cloudfront.net)
语义高亮,之前在KDevelop和其他一些IDE中引入,现在在IntelliJ IDEA中可用。它通过为每个参数和本地变量提供独特的颜色来扩展标准语法突出显示。