为什么`System.out.println(null);`给出“对于类型PrintStream错误,方法println(char [])不明确”?
问题内容:
我正在使用代码:
System.out.println(null);
它显示错误:
The method println(char[]) is ambiguous for the type PrintStream
为什么没有null
代表Object
?
问题答案:
有3种println
的方法PrintStream
接受一个引用类型- ,println(char x[])
,。println(String x)``println(Object x)
通过时null
,所有3个都适用。方法重载规则更喜欢具有最特定参数类型的方法,因此println(Object x)
不选择。
然后,编译器不能在前两个- println(char x[])
和println(String x)
- 之间进行选择,因为String
它不比-
更具体char[]
,反之亦然。
如果要选择特定的方法,请将null强制转换为所需的类型。
例如 :
System.out.println((String)null);