web-dev-qa-db-ja.com

hibernate query.list()メソッドがnull値ではなく空のリストを返している

行がない場合、query.list()とcriteria.list()の両方がnull値ではなく空のリストを返しています。この背後にある理由は何ですか?

48
Reddy

理由は、 Effective Java 2nd Edition 、Item 43:Return empty配列またはコレクション、nullsではありません。

これにより、クライアントコードがよりシンプルになり、エラーが発生しにくくなります(おそらくメソッドの実装も同様です)。

Null-returnイディオムは、配列の長さが実際の配列とは別に返されるCプログラミング言語からのホールドオーバーである可能性があります。 Cでは、長さとしてゼロが返される場合、配列を割り当てる利点はありません。

93
Péter Török

一貫性があります。リストは、結果の有無にかかわらず、すべての結果とともに返されます。

11
Sjoerd