ここでは、Java の型推論 var を使った実践例 5つを、
初心者にも分かりやすく・実用的にまとめます。
各サンプルはすぐ動かせるコード付きです。(Java 10以降対応)
① ループ(for文)での var
ループ変数の型が明らかなときは、var を使うと読みやすくなります。
import java.util.List;
import java.util.Arrays;
class VarLoopSample {
public static void main(String[] args) {
var fruits = List.of("Apple", "Banana", "Cherry");
for (var fruit : fruits) {
System.out.println("果物:" + fruit);
}
}
}
Java💬 解説
fruitsはList<String>と推論されます。fruitは自動的にString型と判断されます。
ループでのvarは最も安全で、よく使われるパターンです。
② ジェネリクス(長い型名をスッキリ書く)
型が複雑なコレクション(MapやList)でも、右辺の型情報から推論されます。
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
class VarGenericSample {
public static void main(String[] args) {
var map = new HashMap<String, List<Integer>>();
map.put("A", List.of(1, 2, 3));
map.put("B", List.of(4, 5));
for (var entry : map.entrySet()) {
System.out.println(entry.getKey() + " → " + entry.getValue());
}
}
}
Java💬 解説
mapはHashMap<String, List<Integer>>型と推論されます。- 長い型を書かなくてよいのでスッキリします。
③ 一時的な計算や中間変数での var
数値計算など、一時的に使う変数では var を使うとコードが簡潔になります。
class VarCalcSample {
public static void main(String[] args) {
var price = 1200; // int
var taxRate = 0.1; // double
var total = price + price * taxRate; // double に自動変換
System.out.println("税込価格:" + total);
}
}
Java💬 解説
int × double の結果は double。total は自動的に double 型になります。
型がすぐ分かる短い処理では var はとても便利です。
④ メソッドの戻り値を受け取るとき
メソッドが何を返すかが明確なときは var を使ってスッキリ書けます。
class VarMethodSample {
public static void main(String[] args) {
var message = getGreeting("Tanaka");
System.out.println(message);
}
static String getGreeting(String name) {
return "こんにちは、" + name + "さん!";
}
}
Java💬 解説
getGreeting()はStringを返すことが明確なので、varで受けても問題なし。- 逆に「戻り値の型が分かりにくいメソッド」では避けた方が安全です。
⑤ 条件分岐やループ内での一時変数
「処理の途中でちょっと使う変数」にも var は向いています。
import java.util.List;
class VarConditionSample {
public static void main(String[] args) {
var numbers = List.of(3, 8, 1, 6);
for (var num : numbers) {
var message = (num % 2 == 0) ? "偶数" : "奇数";
System.out.println(num + " は " + message);
}
}
}
Java💬 解説
messageは三項演算子の結果がStringなので、自動的にString型。- ループ内の「短命な変数」は
var向きです。
まとめ — 実践での使いどころ早見表
| シーン | var の使用 | 理由 |
|---|---|---|
| for-each ループ | ✅ 推奨 | 型が明らかで安全 |
| 複雑なジェネリクス | ✅ 推奨 | 冗長さを解消 |
| 一時的な計算 | ✅ 推奨 | コードを簡潔に |
| 明確な戻り値の受け取り | ✅ 可 | 型が分かるならOK |
| フィールドやメソッド引数 | ❌ 不可 | 仕様で禁止 |
| 戻り値の型が不明なメソッド呼び出し | ⚠️ 非推奨 | 可読性が下がる |
おまけ:初心者向けチェックリスト
✅ var を使っても 型が頭に浮かぶ?
→ Yes → OK
→ No → 型を明示して書こう!

