Безымянные переменные с _
Использовать _, чтобы явно указать, что переменная намеренно не используется.
Сравнение кода
✕ Java 8
try {
parse(input);
} catch (Exception ignored) {
log("parse failed");
}
map.forEach((key, value) -> {
process(value); // key unused
});
✓ Java 22+
try {
parse(input);
} catch (Exception _) {
log("parse failed");
}
map.forEach((_, value) -> {
process(value);
});
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Явное намерение
_ явно говорит «это значение здесь не нужно».
Нет предупреждений
IDE и линтеры больше не помечают намеренно неиспользуемые переменные.
Более чистые лямбды
Лямбды с несколькими параметрами выглядят чище, когда нужны только некоторые из них.
Старый подход
Неиспользуемая переменная
Современный подход
_ как заполнитель
Начиная с JDK
22
Сложность
Начинающий
Поддержка JDK
Безымянные переменные с _
Доступно
Финализировано в JDK 22 (JEP 456, март 2024).
Как это работает
Безымянные переменные сообщают читателям и инструментам, что значение намеренно игнорируется. Больше не нужны соглашения об именовании типа «ignored» или «unused», больше нет предупреждений IDE.
Связанная документация
Доказательство