为什么在Java中我应该在null上使用(String [])null?

泰耶布尔

在一些代码片段中,我注意到该数组是通过将null强制转换为数组来初始化的,String例如:

String[] array = (String[])null;

通常,null用于初始化变量,例如字符串数组,例如:

String[] array = null;

什么时候或为什么应该将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)将执行第三个方法。

当然,你可以分配null到一个String[]变量,并避免铸造:

String[] arr = null;
doSomething (arr);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

什么时候应该在JavaScript中使用delete vs setting元素设置为null?

应该在左侧或右侧检查null

是否应该在C#7中使用==或'is'检查null?

我应该在C中2D数组的malloc和calloc之后检查NULL指针吗?

我应该在MySQL数据库中始终将默认值设置为NULL吗?

我应该在if(data!= null)和data?.let之间使用哪一个?

我们是否应该在finally块中将本地对象引用分配为null?

Android活动-我应该在OnDestroy方法上将视图设置为null吗?

方法 '[]' 在 null 上被调用。甚至价值应该在那里

杰克逊反序列化convertValue应该在null上失败

匿名类对象是否应该在 onDestroy 上设置为 null?

什么(Numeric(18,0),Null)应该在C#中转换为

什么时候应该在实现之前检查视图是否为 != null?

为什么我不应该在Java8中的Optional上使用基于身份的操作?

为什么我在getView上获取null?

为什么我们应该在Angular中的map()上使用subscribe()?

为什么SQL语言使用IS NULL或IS NOT NULL而不是= NULL或<> NULL?

为什么我可以在Java中抛出null?

为什么我的 (id == null) 在 Entity Framework MVC 中的更新方法上返回 null?

为什么我们使用“NULL”?

为什么在String.valueOf中返回“ null” String而不是java null?

为什么在JavaScript中null + null = 0

为什么`NOT(NULL=NULL)` 是假的?

为什么在MySQL中为null <> null = null

为什么Null值应该存在PHP?

我应该使用什么作为null的哈希码?

(a!= null)或(null!= a)

为什么我应该在获取时使用HttpClient?

为什么我应该在Flutter中使用Cards?