varによる型推論
ローカル変数の型推論にvarを使う — 冗長さを減らし、型安全性は変わらない。
コード比較
✕ Java 8
Map<String, List<Integer>> map =
new HashMap<String, List<Integer>>();
for (Map.Entry<String, List<Integer>> e
: map.entrySet()) {
// verbose type noise
}
✓ Java 10+
var map = new HashMap<String, List<Integer>>();
for (var entry : map.entrySet()) {
// clean and readable
}
このコードに問題がありますか? お知らせください。
モダンな方法が優れている理由
ボイラープレートの削減
代入の両側に複雑なジェネリック型を繰り返す必要がなくなります。
可読性の向上
型宣言ではなく、変数名と値に集中できます。
型安全性は維持
コンパイラがコンパイル時に正確な型を推論・強制します。
旧来のアプローチ
明示的な型宣言
モダンなアプローチ
varキーワード
JDKバージョン
10
難易度
初級
JDKサポート
varによる型推論
利用可能
JDK 10(2018年3月)以降、広く利用可能
仕組み
Java 10以降、コンパイラは右辺からローカル変数の型を推論します。型安全性を損なうことなく、視覚的なノイズを減らせます。文脈から型が明らかな場合にvarを使いましょう。
関連ドキュメント