为什么int [] a = new int [0]; 允许吗?

马丁·托马(Martin Thoma):

有什么原因

int[] myArray = new int[0];

编译?

这样的表达有什么用吗?

myArray[0] = 1;

java.lang.ArrayIndexOutOfBoundsException

if (myArray == null) {
    System.out.println("myArray is null.");
} else {
    System.out.println("myArray is not null.");
}

myArray is not null.

所以我看不出为什么int[] myArray = new int[0]应该优先选择的原因myArray = null;

错误处理:

这只是为了减少空检查。

您可以在数组上进行迭代,但不能在null上进行迭代。

考虑一下代码:

for (Integer i: myArray) {
   System.out.println(i);
}

在空数组上不打印任何内容,在null上导致NullPointerException

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

允许“new int[] {0}[0] = 1;”的Java语法是什么?编译?

为什么在golang中[int] int {0}与make([] int,1,1)的DeepEqual失败?有其他选择吗?

C ++ new int [0]-会分配内存吗?

int> 0比!= 0快吗?

make([] int,0),[] int {}和* new([] int)之间有什么区别?

为什么 type(((),)[0]) 是元组而不是 int?

为什么(布尔^ INT> 0)的工作?

为什么 int('.0') 给出 ValueError?

这个“ for”循环会停止吗,为什么/为什么不呢?为(int i = 1; 1 / i> 0; i ++){}

为什么要使用“ int input {0};” 而不是“ int intput”;

为什么0XAA是无符号的int而不是int?

new int [0]和new int [] {}之间有什么区别

为什么JVM为什么使用全0的巨数int []?

为什么要使用int [] a = new int [1]而不是仅仅使用int a?

如果结果必须为int,为什么Java编译器为什么允许int / int除法?

为什么new int(*)[3]是一个错误?

为什么语句int null = 0,* p = null是非法的?

Int除法:为什么1/3 == 0的结果?

为什么不将 0 转换为 *int32?

为什么(double + int)的结果为0(C语言)

为什么非零返回 int 充当 0?

为什么在C中允许以下int * arr []赋值?

“ new int [];”是什么?做?

int x {}之间有区别吗?并且int x = 0 ;?

`type * var =(int)0`,合法吗?

为什么我的 int 数组的 Int 值大于 10 时变成 0?

为什么在C ++中不允许将static_cast从int(*)(int)转换为void *?

为什么允许使用不同的int和const int转换函数?

为什么使用别名int&允许创建非函数类型const(int&)?