在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可以回答这个问题。