web-dev-qa-db-fra.com

La méthode hibernate query.list () renvoie une liste vide au lieu d'une valeur nulle

Lorsqu'il n'y a pas de lignes, query.list () et criteria.list () renvoient une liste vide au lieu d'une valeur nulle. Quelle est la raison derrière cela?

48
Reddy

La raison n'est pas de forcer les contrôles nuls dans le code client, en cohérence avec Effectif Java 2nd Edition , Item 43: Retour vide tableaux ou collections, pas null .

Cela rend le code client plus simple et moins sujet aux erreurs (et très probablement l'implémentation de la méthode également).

L'idiome à retour nul est probablement un résidu du langage de programmation C, dans lequel les longueurs de tableau sont renvoyées séparément des tableaux réels. En C, il n'y a aucun avantage à allouer un tableau si zéro est renvoyé comme longueur.

93
Péter Török

Il est cohérent: une liste est renvoyée avec tous les résultats, qu'il y en ait ou non.

11
Sjoerd