var(Java)とは、Java 10で導入された、型推論を伴った変数宣言を示す予約語である。
2018年3月にJava 10がリリースされた。文法上の最大の変更点は、これまで変数宣言には型の記載が必須であったところを、ローカル変数についてはvarを用いることにより型の記載を省略できるようになったことである。
varはvariable(変数) の略である。
class内でフィールドの型を指定するときには用いることは出来ない。
上述のように、これまでJavaの変数宣言には型の記載が必須であった。
ArrayList<String> strings = new ArrayList<String>();
ArrayList<String>が2回出てきて冗長であるという批判があった。Java 7からジェネリクスの型推論が導入されて、以下のように書けるようになった。
ArrayList<String> strings = new ArrayList<>();
Stringの重複はなくなったが、ArrayListの重複はなくなっていない。今回のvarの導入により、以下のように書くことができる。
var strings = new ArrayList<String>();
今回の変更については、コードを短くできる(今更この程度短くしても焼け石に水)という肯定的な意見と、変数名にvarを使った古いコードがたくさんあるオワタ右辺の型が自明でない時にコードを理解しづらくなるという否定的な意見がある。
この点について公式サイト内で以下のようなガイドラインが出されている。
以下で上記ガイドライン中の見出しを元に解説する。
Javaでは宣言の型はインターフェースで行うことが推奨されている。
宣言の右辺がArrayListでも、Listとしてしか使用しない場合はListで宣言することが推奨される。(たとえば、なんらかの事情で右辺がLinkedListに変わってしまった場合でも他のコードを書き直す必要がないからとされている。)
G2に従っているなら、varで宣言された変数はそこから数行以内で使用されるはずであり、変更の影響が外に及ぶことはないから変更の影響は少ないはずである。。
たとえば、概要で述べた例を型引数まで省略してしまうと、以下のようになる。
var strings = new ArrayList<>();
右辺はStringのArrayListであるとわからなくなってしまうので、ArrayList<Object>と型推論される。
short shortNumber = 0;
var shortNumber = 0;
上の行ではshortNumberの型はshortだが、下の行ではshortNumberの型はintになる。
急上昇ワード改
最終更新:2025/12/12(金) 16:00
最終更新:2025/12/12(金) 15:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。