💭

[Java] 変数宣言時に var を使う

2023/02/03に公開

はじめに

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";
    }
}
GitHubで編集を提案

Discussion