これは非常に基本的な質問かもしれませんが、私はまだ答えを知りません。
String abc = null;
System.out.println(abc);
System.out.println
印刷が「null」でスローされないのはなぜNullPointerException
ですか?
最終的にprint
メソッドに到達するため、null
String
:に対して「null」を出力します。
public void println(String x) {
synchronized (lock) {
print(x);
println();
}
}
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
null参照の出力にも同じ動作が存在します(この場合、「null」文字列はString.valueOf(null)によって返されます:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (lock) {
print(s);
println();
}
}
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加