零长度数组超过null有什么用?任何人都可以用例子来解释

时间:2011-10-04 03:14:58

标签: java

我被告知在程序中使用zerolength数组而不是null。但是我找不到如何使用Zerolength数组。请帮助我。

4 个答案:

答案 0 :(得分:7)

一般来说,这个想法是,如果查询返回“无结果”,所有事情都相同,最好返回一个空列表(或数组)而不是null

原因是它使客户端代码更清洁。您仍然可以使用空数组执行此类操作:

Account[] accounts = getAccounts();
for ( Account account : accounts ) {
    account.recomputeForInterest();
}

如果您尝试使用null,则会遇到运行时异常。您可以使用以下几种方法创建一个空数组:

Account[] accounts = {};
accounts = new Account[0];
accounts = new Account[]{};

答案 1 :(得分:5)

零长度数组只是一个没有内容的数组。例如,int类型的零长度数组将是:

int[] myArray = new int[0];

null和空数组之间进行选择只是一个设计决策,具体取决于您希望如何使用代码。 null需要额外检查(例如if (myArray != null) { ... }),但实际上并没有分配任何空间,因此如果空间至关重要,可能会更便宜。

答案 2 :(得分:2)

不要传递空值!

如果传递零长度数组而不是null,则使用它的方法将能够迭代它而不会导致空指针异常。任何集合类都是如此

答案 3 :(得分:1)

零长度数组可用作数组;例如,您可以迭代其成员,或使用.length。你不能用null做到这一点,因为你会得到一个空的引用异常。