3 回答
TA贡献1862条经验 获得超7个赞
null数组和空数组之间有一个关键的区别。这是对的测试null。
int arr[] = null;
if (arr == null) {
System.out.println("array is null");
}
这里的“空”没有官方含义。我选择将空定义为具有0个元素:
arr = new int[0];
if (arr.length == 0) {
System.out.println("array is empty");
}
如果所有元素都是,则“空”的另一种定义是null:
Object arr[] = new Object[10];
boolean empty = true;
for (int i=0; i<arr.length; i++) {
if (arr[i] != null) {
empty = false;
break;
}
}
要么
Object arr[] = new Object[10];
boolean empty = true;
for (Object ob : arr) {
if (ob != null) {
empty = false;
break;
}
}
TA贡献1780条经验 获得超1个赞
我来自.net背景。但是,java / c#基本相同。
如果您实例化非基本类型(在您的情况下为数组),则该类型不会为null。
例如,int[] numbers = new int[3];
在这种情况下,将分配空间且每个元素的默认值为0。
这将是null,当你做不new起来。
例如
int[] numbers = null; // changed as per @Joachim's suggestion.
if (numbers == null)
{
System.out.println("yes, it is null. Please new it up");
}
添加回答
举报