Java 10のローカル変数型推論(var)をマスターする
JEP 286 - ローカル変数型推論
ローカル変数型推論は、Java 10から利用可能になった言語レベルで最も顕著な変更の1つです。varを使って型を指定せずに変数を定義できるようになります。コンパイラが代入される値から変数の型を推論します。この型推論はローカル変数に限定されます。
従来のローカル変数宣言
String name = "Welcome to tutorialspoint.com";
新しい宣言方法(var使用)
var name = "Welcome to tutorialspoint.com";
コンパイラは代入値を調べてname変数の型をStringと推論します。
重要なポイント
- メンバ変数、メソッドパラメータ、戻り値では型推論不可
- ローカル変数は宣言時に初期化必須(そうでないとコンパイラが推論できずエラー)
- ループ文の初期化ブロック内でも利用可能
- ランタイムオーバーヘッドなし(コンパイル時に型が決定されるため性能低下なし)
- 動的な型変更不可(一度推論された型は変更できない)
- 複雑なボイラープレートコードを削減可能
例:
Map<Integer, String> mapNames = new HashMap<>(); var mapNames1 = new HashMap<Integer, String>();
使用例
import java.util.List;
public class Tester {
public static void main(String[] args) {
var names = List.of("Julie", "Robert", "Chris", "Joseph");
for (var name : names) {
System.out.println(name);
}
System.out.println("");
for (var i = 0; i < names.size(); i++) {
System.out.println(names.get(i));
}
}
}
出力
Julie Robert Chris Joseph Julie Robert Chris Joseph
Java
- Javaプリミティブデータ型:例付き完全ガイド
- Java演算子をマスター:種類、構文、実践例
- Javaコメント:種類、使い方、ベストプラクティス
- Java拡張forループをマスター:構文、例、ベストプラクティス
- Java文字列をマスター:生成、メソッド、ベストプラクティス
- Javaインターフェース完全ガイド:概念、実装、ベストプラクティス
- Javaのtry-with-resourcesをマスターする:自動リソース管理の仕組みと活用法
- Javaアノテーション完全ガイド:種類、配置場所、実践例
- Java型キャスト完全ガイド:拡大変換から縮小変換まで
- Java static 完全解説:変数・メソッド・ブロックの実践例
- Javaプリミティブデータ型:8種類を徹底解説