4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Java Siler】varによる型推論について

Posted at

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が作成される。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?