Java プログラミング

var「型推論」とは(java)

varとは

ローカル変数の宣言時、変数の型の代わりに「var」と書くことで、型の指定を省略することができる。これを型推論という。

varの特徴

変数は必ず初期化する

var型で宣言した場合、宣言時は必ず値を代入し初期化をしなければならない。

 command
var str = "" ; // 初期化OK
var str; // コンパイルエラー

nullは代入できない

nullの場合は、型を推論することができないためコンパイルエラーとなる。

 command
var str = null ; // コンパイルエラー

 

異なる型を代入できない

String型からint型を変換できないためエラーになる。

 command
var str ="10";
str = 10; // コンパイルエラー

 

ローカル変数のみ使用可能(メンバ変数には使えない)

 command
public class Test1{
var str1 =""; // コンパイルエラー (メンバー変数)
void test() {
var str2 =""; // ローカル変数 OK
}
}

 

アクセス修飾子はつかない

※finalをつけることはできる。

 command
public var str = "Programmer Life"; // コンパイルエラー(無効な修飾子)

 

配列は型を明記

 command
var arr1[] = {"Hello"}; // コンパイルエラー(推論できない)
var arr2 = new int[3]; // OK int型と明記
var arr3 = new int[]{1,2,3}; // OK int型と明記

 

メソッドの引数に使用できない

 command
void disp(var v) {} // コンパイルエラー(許可されていない)

 

 匿名クラス

※ java.util.function.Supplierをimportしてテストしてください。

 command
var obj2 = new Supplier() {
//メソッドをオーバーライド
@Override
public Integer get(){
return 10;
}
};

 

ラムダ式

※java.util.functionをimportする必要がある

 command
var sup1 = () -> 10; // コンパイルエラー 型が推論できない
var sup2 = (Supplier)() -> 10; // OK Supplierの型でキャスト
var con = (Consumer)(var s) ->{ System.out.print(s);}; // OK ラムダ式の引数にvarは使用可能

 

 

 

 

-Java, プログラミング

© 2026 Suzuki Blog Powered by AFFINGER5