java中的Println null参数

Sit*_*nsu 1 java string

一位采访者问我下面的问题是该计划的产出是什么.

但我尝试在我的最后一行编译,但第二行不编译它背后的原因.

任何人都可以告诉我.

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

Era*_*ran 7

第二行不编译,因为它System.out是一个PrintStream实例,并且PrintStream有多个println方法采用引用类型参数(println(String x)println(char x[])).传递a时null,编译器无法决定选择哪个重载方法.

System.out.println(str)传递编译,因为argument(String)的类型只匹配println- 的重载版本之一println(String x).

  • 应该注意的是,你可以修复这个添加一个显式的强制转换:`println((String)null)`. (3认同)