在一些片段中,我注意到通过将null
值转换为数组来初始化String
数组,如:
String[] array = (String[])null;
通常,null
用于初始化变量,例如字符串数组,如:
String[] array = null;
何时或为什么要将空值转换为字符串数组或任何其他类似的数据类型?
没有必要使用
String[] array = (String[]) null;
(String[]) null
如果将null
值传递给重载方法(即具有相同名称的多个方法之一),并且希望String[]
编译器选择接受参数的方法,则可能必须使用.
例如,如果您有以下方法:
public void doSomething (Integer i) {} public void doSomething (String s) {} public void doSomething (String[] arr) {}
调用doSomething (null)
不会通过编译,因为编译器不知道选择哪种方法.
调用doSomething ((String[]) null)
将执行第3种方法.
当然,您可以将变量分配null
给String[]
变量,并避免强制转换:
String[] arr = null; doSomething (arr);