Во-первых, вы используете лямбду, которая является синтаксическим сахаром.Во-вторых, фиолетовое подчеркивание появляется, если переменная не находится внутри лямбды, чтобы показать пользователю, что вы не используете локальную переменную.
Например:
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
становится фиолетовым, подчеркнутым, потому что это снаружи лямбда.