【ローカル変数型推論】javaのvarの使い方~変数・配列・Collection編~【java11】


javaのvarの使い方

javaのvarの使い方 変数・配列・Collection編

ラムダ式編はこちら 拡張for文編はこちら 注意点はこちら

java 10 から、javaのローカル変数に、ローカル変数型推論が追加されました。

このローカル変数型推論は、Java SE 11 Programmer I の試験(いわゆる、java Silverと呼ばれている試験)の試験内容チェックリストにも含まれています。

すでに同試験は配信開始されており、今後の試験では出題されることが予想されます。

そこで、このローカル変数型推論を実際に使ってみたので、忘備録代わりにメモ。

なお、本記事は、ひしだまのホームページ(外部リンク)様のこちらの記事を参考に手元の環境で試した内容をもとに執筆しております。

 


javaの環境について

javaの環境は以下の通りです。

javaのバージョン
 openjdk version “11” 2018-09-25
 OpenJDK Runtime Environment 18.9 (build 11+28)
 OpenJDK 64-Bit Server VM 18.9 (build 11+28, mixed mode)
 javac 11

 

 プログラムを実行する際は自己責任で実行してください。 

 

以上、お約束のやつ終わり!

それでは早速行ってみよう!


サンプルプログラム

構文確認

サンプルプログラムの前に、ローカル変数型推論を使った際の構文の確認。

var 変数名 = 値; //OK
//var 変数名; //コンパイルエラー

通常の変数と異なり、 変数宣言時に必ず値を代入しないといけない ので注意!

構文を確認できたところで、使用例に行ってみよう♪


変数宣言1

//変数宣言
//宣言時に初期化する以外は、通常の変数と同じ扱い。

var v1 = 1; //OK。

var v2 = new Object(); //OK。

//var v3; //ダメ。宣言のみで初期化されていない。

//var v4; v4 = "Hello"; //ダメ。宣言と同時に初期化する必要がある。

//var v5 = null; //ダメ。nullではデータ型の推論が効かない。

//var v6 = 6, v7 = 7; //ダメ。複合宣言はできない。

var v8 = "abc".equals("abc"); //OK。boolean型

変数宣言時には、 1行で2つ以上宣言できない こと、 宣言と同時に初期化しないとダメ なこと、 インスタンス変数では利用できない ことに注意。


変数宣言2(配列)

//配列宣言
//データ型を明示する必要がある以外は、通常の配列と同じ扱い。

var a1 = new int[4]; //OK。データ型が自明。

var a2 = new int[] {1,2,3}; //OK。データ型が自明。

//var a3 = {1,2,3}; //ダメ。データ型の推論が効かない。

配列を宣言する際には、 初期化子のみではダメ なことに注意。


変数宣言3(Collection)

//基本的に、通常のArrayListと同じ扱い。

var list1 = new ArrayList(); //ArrayList型

var list2 = new ArrayList<>(); //ArrayList<Object>型

var list3 = new ArrayList<String>(); //ArrayList<String>型

Collectionで宣言する際には、 データ型に注意 すること。


以上varの使い方 変数・配列・Collection編でした♪

匿名クラスとラムダ式編はこちら

拡張for文編はこちら

注意点はこちら


 オススメ!!→ java 11 の問題はComing Soon…

 オススメ!!→ ローカル変数型推論使用時の注意点はこちら

 オススメ!!→ java 8 の問題はこちら

 オススメ!!→ javaのプログラム作成練習問題はこちら

 オススメ!!→ java関連の記事はこちら

  • このエントリーをはてなブックマークに追加

PAGE TOP