Почему Intellij idea настаивает на применении unnamed variables?
В Java 22 появилась возможность назвать неиспользуемую переменную нижним подчёркиванием (JEP 456).
У меня есть такая строчка:
go.addActionListener(e -> ui.setVisible(false));
И теперь среда разработки выдаёт предупреждение:
Parameter 'e' is never used
С предложением заменить e
на _
:
go.addActionListener(_ -> ui.setVisible(false));
Стоит ли так делать? Каков смысл этого? По мне так когда видишь это, то смотришь и несколько секунд не можешь понять, что это такое вообще...
Ответы (1 шт):
Использовать ли unnamed variables – дело вкуса. Задумка была в том, чтобы можно было показать намерение не использовать переменную. Это может иметь смысл, если есть какой-нибудь длинный foreach, например, где видно далеко не сразу, что переменная нигде не понадобилась.
Правда среда предлагает это делать везде, что не всем может понравиться. В данном случае, по моему сугубо личному мнению, нижнее подчёркивание выглядит коряво. Но когда я попробовал отключить проверку (нажал disable inspection), отключилась проверка обычных бесполезных переменных, созданных случайно, например в коде ниже:
public void doSomthing() {
int x = 3; //Переменная не используется и была создана по ошибке
Foo foo = new Foo();
foo.bar();
foo.baz();
}
Поэтому в данном случае пришлось просто подавить предупреждение. Нажимаем правой кнопкой мыши по предупреждению -> Show quick-fixes -> ... и выбираем suppres for statement, либо suppress for statement with comment.
Скриншот: