varとは
変数宣言時のデータ型を推論する(ローカル変数の型推論)場合に、データ型の代わりにvarを使って変数を宣言します。
※型推論はコンパイル時に行われる。
※ローカル変数の宣言にしか使えない。
推論できるパターン
例えば、下記の変数aには整数リテラルの10を代入しているので、データ型はint型になります。
var a = 10;
また、以下のようにメソッドの戻り値を受け取るのにも使うことができる。(メソッドの定義から型が判別できる為)
var b = sample();
ダイヤモンド演算子
ダイヤモンド演算子とは、下記コードに使用されている「<>」のこと。
ArrayList<String> c = new ArrayList<String>();
//右辺の<>の中身(String)を省略することができる。
ArrayList<String> c = new ArrayList<>();
型推論において、下記のようなコードを記述したとすると、
var d = new ArrayList<>();
参照できる型情報がない場合はObject型として判断される為、以下のコードと同じ意味になります。
var d = new ArrayList<Object>();
推論できないパターン
大まかにいうと、データ型を特定できない時にコンパイルエラーとなります。
・変数が初期化されていない
var e;
・nullで初期化している
var f = null;
・ラムダ式
var g = () -> {};
・配列の初期化式
var h = {1, 2, 3};
・フィールドの宣言
※フィールドとは、クラス内で値を保管するために使用するもの。
public class Sample {
var name = "";
var age = 15;
}
・引数の型宣言
public class Sample {
public void test(var value) {
System.out.println(value);
}
}
まとめ
私のレベルでは、varの使い所がいまいち分かりませんでした。今後実務でも使いこなせるようにしていきたいです!!
閲覧いただきありがとうございました!!!