varとは
Java SE10 以降登場した、ローカル変数の型推論を行う仕組み。
右辺の型からデータ型を推論する。
varによる型推論は、コンパイル時に行われる。
※【ローカル変数とは】
メソッド内で宣言する変数のこと(メソッドの中の仮引数または引数として使われる)
・varによる型推論の例
var i = 10; //右辺の値より、iはint型であると推論する
varによる型推論ができるのはローカル変数のみ!!!!
varを使えないパターン(コンパイルエラー発生)
・ローカル変数以外の変数(インスタンス変数・static変数・メソッドの戻り値型)の場合
・変数宣言時に初期化していない場合(つまり、「var i;」と変数だけ作成する場合)
・nullで初期化している場合
・配列の初期化を代入する変数の場合
varで配列を作る際の注意
varは右辺の型からデータ型を推論する。そして、配列の作成に使う初期化子({})も、代入する値の型から配列の型を推論する。お互いに推論しあってしまうため、型が決まらずにコンパイルエラーとなる。
・コンパイルエラーとなる配列の初期化例
var array = {1,2,3};
しかし、右辺で配列の値を作成する際に、型を宣言してくれれば、varによる配列の初期化が可能になる
・varによる配列の初期化例
var array = new int []{1,2,3}; //int型の配列が作成できる
varでArrayListを作る際の注意
配列と同様に、varによってArrayListを作成することもできる。
・varによるArrayListの初期化
var list = new ArrayList<>();
ArrayListのダイヤモンド演算子は、参照できる型がない時に、Object型を返す。故に上記のコードは下記のコードと同じ。
var list = new ArrayList<Object>();
listとして、Object型のArrayListが作成される。