假设我有一个具有以下签名的函数:
Foo[] getSomeFoos()
{
//return null --- option A
or
//return new Foo[0]; --- option B
}
返回指示没有返回元素的值的推荐做法是什么?每个选项的优缺点?
最佳答案
如果您的方法 GetSomeFoos()
实际上“找到”了 0 个元素,那么它应该返回 new Foo[0]
。
如果出现某种错误,您应该抛出一个Exception
。
原因是因为用户不应该寻找空值:
for (Foo f: GetSomeFoos()) {
// do stuff
}
在上述情况下,如果 GetSomeFoos
返回 null
,用户将不得不处理 NullPointerException
。但是,如果返回一个空数组,代码将永远不会进入循环,用户也不必处理异常。
关于java - 什么都不返回,使用 array == null 或 array.length == 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3809406/