一位采访者问我下面的问题是该计划的产出是什么.
但我尝试在我的最后一行编译,但第二行不编译它背后的原因.
任何人都可以告诉我.
package swain.javainterviewhub.blogspot.in;
import java.util.Scanner;
public class JavaInterviewHub {
public static void main(String[] args) {
String str=null;
System.out.println(str);//Line 1 Compile
System.out.println(null);/Line 2 Not compile
}
}
Run Code Online (Sandbox Code Playgroud)
什么是真实的null.Its字符串或charecter或整数.我的问题是什么是null类型.谢谢Sitansu
第二行不编译,因为它System.out是一个PrintStream实例,并且PrintStream有多个println方法采用引用类型参数(println(String x)和println(char x[])).传递a时null,编译器无法决定选择哪个重载方法.
System.out.println(str)传递编译,因为argument(String)的类型只匹配println- 的重载版本之一println(String x).