Когда нет строк, как query.list (), так и conditions.list () возвращают пустой список вместо нулевого значения. В чем причина этого?
Причина не в том, чтобы принудительно проверять null в клиентском коде, в соответствии с Эффективным Java 2nd Edition, пункт 43: Возвращает пустые массивы или коллекции, а не пустые значения.
Это делает клиентский код более простым и менее подверженным ошибкам (и, скорее всего, реализацию метода тоже).
Идиома нулевого возврата, вероятно, является пережитком языка программирования C, в какие длины массивов возвращаются отдельно от фактических массивов. В Си нет преимущество выделения массива, если в качестве длины возвращается ноль.
Постоянство: возвращается список со всеми результатами, независимо от того, есть они или нет.