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