在JAVA中对任何引用类型类型转换'null'有什么用?

时间:2016-07-03 10:48:42

标签: java null

有什么可以通过类型转换为null来表示String ref type?

String s = null;
String t = (String) null;

两者都做同样的事情。

sysout(s)显示null

sysout((String)null)显示null

1 个答案:

答案 0 :(得分:10)

假设您有重载的方法接受一个参数,并且您想调用其中一个并将null传递给它。

getInt : IntOrString -> String
getInt intOrString =
  case intOrString of
    MyString s ->
      s

    MyInt i ->
      toString i

如果您拨打电话

public void method1 (String param) {}

public void method1 (StringBuilder param) {}

代码不会通过编译,因为两个方法都接受method1 (null); 引用,并且编译器在两个重载之间没有首选项。

如果你打电话

null

将调用第一个方法。

如果你打电话

method1 ((String) null);

将调用第二种方法。