hibernate метод query.list () возвращает пустой список вместо нулевого значения - PullRequest
48 голосов
/ 30 августа 2010

Когда строк нет, и query.list (), и crit.list () возвращают пустой список вместо нулевого значенияВ чем причина этого?

Ответы [ 2 ]

93 голосов
/ 30 августа 2010

Причина не в том, чтобы принудительно выполнять нулевые проверки в клиентском коде в соответствии с Effective Java 2nd Edition , элемент 43: Возвращать пустые массивы или коллекции, а не нули .

Это делает клиентский код более простым и менее подверженным ошибкам (и, скорее всего, также реализации метода).

Идиома нулевого возврата, вероятно, является пережитком языка программирования C, в какие длины массивов возвращаются отдельно от фактических массивов. В С нет преимущество выделения массива, если в качестве длины возвращается ноль.

11 голосов
/ 30 августа 2010

Он постоянен: список возвращается со всеми результатами, независимо от того, есть они или нет.

...