当没有行时,query.list()和criteria.list()都返回空列表而不是空值。 这背后的原因是什么?
答案 0 :(得分:90)
原因是不要在客户端代码中强制进行空检查,与Effective Java 2nd Edition一致,第43项:返回空数组或集合,而不是空值。
这使得客户端代码更简单,更不容易出错(并且很可能也是方法实现)。
null-return成语很可能是C编程语言的延续 哪些数组长度与实际数组分开返回。在C中,没有 如果返回零作为长度,则分配数组的优势。
答案 1 :(得分:11)
一致:返回包含所有结果的列表,无论是否有。