回答:
Javaは、オブジェクトを参照しない整数参照にnullを正常にキャストします。
それは問題ありません。なぜなら、検証されていないということは、参照にとって有効な状態だからです。
実行できないのは、存在しないオブジェクトのメソッドの呼び出しです。
キャストの実行は(Integer)null
、整数変数を宣言してから、新しい(または既存の)整数オブジェクトインスタンスの割り当てに失敗することと同じです。
Integer
aをint
ie inにunboxするにはint i = new Integer(15);
、i
実際に等しいnew Integer(15).intValue()
i = (Integer) o
; where Object o = 15
はo = Integer.valueOf(15);
but と同じi = null
です。がスローされるのは、どちらがスローするNullPointerException
かi
に等しいためです 。null.intValue()
NullPointerException
valueOf()
、ボクシング用の新しいインスタンスを作成するのではなく、ファクトリメソッドを使用しています。