[解決済み] JavaでNULLを使った型キャストで例外が発生しない件
2022-04-06 18:26:03
質問
String x = (String) null;
なぜこの文には例外がないのでしょうか?
String x = null;
System.out.println(x);
印刷されます
null
. しかし
.toString()
メソッドはヌルポインター例外を投げるべきです。
解決方法は?
キャストすることができます。
null
をどのような参照型にも例外なく適用できます。
は
println
メソッドは、最初にオブジェクトが NULL かどうかをチェックするため、NULL ポインタを投げることはありません。もし null ならば、単に文字列
"null"
. そうでない場合は
toString
メソッドを呼び出すことができます。
詳細を追加する。
内部的にprintメソッドは
String.valueOf(object)
メソッドを入力オブジェクトに対して実行します。そして、その中の
valueOf
このチェックにより、ヌルポインター例外を回避することができます。
return (obj == null) ? "null" : obj.toString();
NULLオブジェクトのメソッドを呼び出すと、特別なケースでない限り、NULLポインタ例外が発生します。
関連
-
[解決済み] HashMapのtoString関数はなぜ異なる順序で自分自身を印刷するのですか?
-
[解決済み] JavaにおけるMouseListenerとMouseAdapterの違いについて
-
[解決済み] Mavenです。JARは空になります - 含有するためにマークされたコンテンツがありません
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] Javaで文字列を分割する方法
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] Javaで数値を小数点以下n桁に丸める方法
-
[解決済み] Spring の @Autowired フィールドが NULL になっているのはなぜですか?
-
[解決済み] JavaでのNullPointerException(StackTraceなし
-
[解決済み】Collectors.toMapでNullPointerExceptionが発生する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] トークンのシンタックスエラー、これらのトークンを削除してください [closed].
-
[解決済み] javaで部分クラスを実装する方法
-
[解決済み] 環境変数JAVA_OPTSの使い方を教えてください。
-
[解決済み] java.util.concurrent.ExecutionException 例外をどのように処理しますか?
-
[解決済み] 親から継承したメソッドの可視性を下げることができない [重複]。
-
[解決済み] publicId と systemId の間に空白が必要です。
-
[解決済み] java.lang.ClassCastException: java.lang.Long を java.lang.Integer にキャストできない(java 1.6
-
[解決済み] Spring ApplicationContext - リソースリーク: 'context' が閉じられない
-
[解決済み] java.io.IOException。DER長の短い読み取り
-
[解決済み] x--やx++はここで何をするのですか?