Java 为什么这种打印方法有效?不应该';它不会失败吗?

Java 为什么这种打印方法有效?不应该';它不会失败吗?,java,println,Java,Println,我有一个返回字符串的函数,但首先我检查字符串是否为null,如果为null,则返回null 我的职能 字符串解码(字符串输入) 如果输入为null,则返回null 所以,如果我执行decode(null()),它应该返回null,对吗? 而且println(null)不应该打印“null”,对吗 可运行的代码链接: 你写的 // System.out.println(null); // this fails because println doesn't accept null 你确定

我有一个返回字符串的函数,但首先我检查字符串是否为null,如果为null,则返回null

我的职能

字符串解码(字符串输入)
如果输入为null,则返回null 所以,如果我执行
decode(null())
,它应该返回
null
,对吗? 而且
println(null)
不应该打印
“null”
,对吗

可运行的代码链接:

你写的

    // System.out.println(null); // this fails because println doesn't accept null
你确定吗


PrintStream.println
调用
String.valueOf
,它将
null
转换为字符串
“null”

,因为
System.out.println(null)
将按字面意思打印
null
。啊,这就是我需要的解释。谢谢。问题是
null
没有类型,因此这会导致编译器错误,因为java不知道调用哪个重载方法。首先将值强制转换为字符串:
System.out.println((String)null)
    // System.out.println(null); // this fails because println doesn't accept null