35 votes

Existe-t-il une raison valable de coder un faux booléen sous le nom "Boolean.FALSE" en java?

Les réviseurs de code se plaignent donc du code suivant:

 boolean myFlag = false;
 

Ils disent que cela devrait être:

 boolean myFlag = Boolean.FALSE;
 

Est-ce juste un fétiche de ne pas utiliser de mots-clés ou existe-t-il une raison valable de le faire?

57voto

Jon Skeet Points 692016

Non, c'est complètement inutile. Il serait logique d'utiliser:

 // Note capital B
Boolean myFlag = Boolean.FALSE;
 

pour éviter l'appel à Boolean.valueOf (sélection automatique), mais dans votre code, il n'y a pas de boxe, et leur suggestion introduit une opération de déballage inutile.

Comme toujours, si quelqu'un suggère quelque chose et que vous ne comprenez pas pourquoi, votre premier port d'escale devrait le lui demander .

10voto

whaley Points 8789

Il n'y a rien de mal à utiliser le mot clé false. En fait, dans votre code, il serait idiot d’utiliser Boolean.False puisqu’il faut ununboxing automatique implicite pour l’affecter à votre champ / variable primitif (Boolean.False est un booléen et non un booléen).

5voto

matt b Points 73770

En tant que plainte, cela n’a pas beaucoup de sens puisque Boolean.FALSE n’est pas emballé dans false toute façon. Mais peut-être demander aux gens de vous dire de changer le code, pourquoi?

0voto

ADTC Points 1786

Je ne peux que penser à une raison, si vous voulez vraiment creuser pour une raison possible:

Dans un IDE comme Eclipse, vous pouvez droit-cliquez sur FALSE (en Boolean.FALSE) et sélectionnez Ouvrir Hiérarchie d'Appel ou de Références > (option). Vous ne pouvez pas faire cela avec le littéral false. Mais je ne sais pas comment utile de trouver toutes les références d' Boolean.FALSE sera dans vos cycles de développement.

Curieusement, quand j'ai cherché des références de FALSE, il a été constaté éparpillées dans la Java de base (JDK/JRE) le code source! Si nous voulons l'utiliser ou pas, une chose est sûre, le gars qui a codé et maintenir Java utilisent fortement.

Comme pour les autres réponses, il est inutile dans le cas contraire et vous pouvez simplement utiliser le littéral false, surtout si la performance est importante - en évitant l'unboxing de frais généraux. La révision du Code doit être la priorité des optimisé lisible et bien commenté code unoptimized un code lisible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X