_による無名変数
変数を意図的に使用しないことを_で明示する。
コード比較
✕ 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年3月)
仕組み
無名変数は、読み手やツールに対して値が意図的に無視されることを伝えます。'ignored'や'unused'といった命名規則も、IDEの警告も不要になります。
関連ドキュメント