我被告知在程序中使用zerolength数组而不是null。但是我找不到如何使用Zerolength数组。请帮助我。
答案 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做到这一点,因为你会得到一个空的引用异常。