Javaの場合:
int count = (Integer) null;
java.lang.NullPointerExceptionをスローします。
プログラマが理解しやすいように、なぜこれがクラスキャスト例外をスローしないのですか?
この例外が他の例外よりも選ばれたのはなぜですか?
コードを実行すると、Javaランタイムは次のことを行います。
つまり、nullはIntegerに問題なくキャストできますが、null整数オブジェクトはint型の値に変換できません。
[〜#〜]編集[〜#〜]
以前、Stack Overflowで関連する質問がありました。 ここ を参照してください。
Javaは、オブジェクトを参照しない整数参照にnullを正常にキャストします。
実体化されていないことがリファレンスにとって有効な状態であるため、それは問題ありません。
実行できないのは、存在しないオブジェクトのメソッドの呼び出しです。
キャストの実行(Integer)null
は、Integer変数を宣言してから、新しい(または既存の)Integerオブジェクトインスタンスの割り当てに失敗した場合と同じです。