在java中打印null
执行以下命令时:在java中打印null,java,printing,null,Java,Printing,Null,执行以下命令时: System.out.println(null); 结果显示为控制台上打印的null 为什么会发生这种情况?因为这正是Javadocs所说的会发生的事情 打印字符串。如果参数为null,则打印字符串“null” 当我查看javadoc时,我观察到(我在这里引用) 印刷品 公共作废打印(字符串s) 打印字符串。如果参数为null,则字符串“null”为空 印刷的。否则,字符串的字符将转换为字节 根据平台的默认字符编码 字节的写入方式与write(int)方法完全相同。
System.out.println(null);
结果显示为控制台上打印的null
为什么会发生这种情况?因为这正是Javadocs所说的会发生的事情 打印字符串。如果参数为null,则打印字符串“null”
当我查看javadoc时,我观察到(我在这里引用) 印刷品 公共作废打印(字符串s) 打印字符串。如果参数为null,则字符串“null”为空 印刷的。否则,字符串的字符将转换为字节 根据平台的默认字符编码 字节的写入方式与write(int)方法完全相同。 参数:s-要打印的字符串
希望这能回答你的问题 它最终会调用
String.valueOf(Object)
,如下所示:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
从OpenJDK 1.6.0_22的源代码可以看出: 打印流:
public void println(Object x) {
String s = String.valueOf(x);
synchronized (this) {
print(s);
newLine();
}
}
字符串:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
实际上,至少在java版本1.8.0中,
System.out.println(null)代码>不应打印null
。您可能会出现如下错误:
对println的引用不明确,PrintStream中的方法println(char[])和PrintStream中的方法println(String)都匹配
您必须按如下方式强制转换:System.out.println((String)null)代码>参见coderanch post。
我想您也可以执行System.out.println(null+“”)代码>来完成同样的任务。-1-阅读javadoc可以回答这个问题。