💭
[Java] 変数宣言時に var を使う
はじめに
n 番煎じかもしれませんが、Java の var について勉強する機会があったのでそのまとめです。
勘違いしていたこと
- 型がわかっているならきちんと型を書いた方が良い
- TypeScript で any を使わないようにするのと同じイメージ
var とは
Java10 から変数宣言の際に var が使えるようになりました。
Java の型名は長いことが多々あるので、これをいちいち書いているとコード自体が長くなってしまいます。
// 長い型名の例
PrefectureList prefectureList = new PrefectureList();
これを var で置き換えることでコードがかなりスッキリします。
// var を使用した例
var prefectureList = new PrefectureList();
また上記の例のように、右辺から左辺の変数の型が推測できる場合、型名を毎回書くのは冗長です。
var は明示的に型を書かなくても、型推論を行ってくれます。
var を使う時の注意点
色々ありますが、主に自分が引っかかりそうなところを中心に3点挙げます。
- 変数の初期化
var を使って変数を宣言する際には必ず初期化が必要です。
// これは OK
var hoge = "";
// これはNG
var hoge;
- null は代入できない
型推論ができないためエラーになります。
// これはNG
var hoge = null;
- ローカル変数でのみ使用可能
メンバ変数ではきちんと型を書いてあげる必要があります。
public class HogeClass {
// ここでは var は使えない
string hoge = "hoge";
void hogeMethod() {
// ここでは var が使える
var fuga = "fuga";
}
}
Discussion