Javaのオートボクシング

プリミティブ型とラッパークラスの変換を自動で行ってくれる仕組み

Java 5からの機能で便利なのかもしれないけどコードレビューしていると結構嫌よね。

public void foo() {
    Integer iObject = new Integer(10);
    int i = 0, j;

    iObject = i;    // オートボクシング
    // iObject = Integer.valueOf(i);

    j = iObject;    // アンボクシング、iObjectがnullだとNullPointerException
    // j = iObject.intValue();
}

ただし、Eclipseだと設定によって警告を出せるらしい

[ウィンドウ]->[設定]->[Java]->[コンパイラー]->[エラー/警告]->[潜在的なプログラミングの問題] を展開して[ボクシングおよびアンボクシング変換]を「エラー、警告、無視」から選択可能。デフォルトは「無視」。

f:id:kazuokohchi:20170903152144p:plain