J'aime utiliser un point d'interrogation à la fin des noms de méthodes/fonctions dans d'autres langues. Java ne me le permet pas. Comme solution de contournement, comment puis-je nommer les méthodes de renvoi booléen en Java? À l'aide d'un is
, has
, should
, can
au début d'une méthode sonne bien dans certains cas. Y a-t-il une meilleure façon de nommer ces méthodes?
Par exemple createFreshSnapshot?
La convention est de poser une question dans le nom.
Voici quelques exemples qui peuvent être trouvés dans le JDK:
isEmpty()
hasChildren()
De cette façon, les noms sont lus comme s'ils auraient un point d'interrogation à la fin.
La collection est-elle vide?
Est-ce que cela Node) a des enfants?
Et alors, true
signifie oui et false
signifie non.
Ou, vous pouvez le lire comme une affirmation:
La collection est vide.
Le noeud a des enfants
Remarque:
Parfois, vous voudrez peut-être nommer une méthode comme createFreshSnapshot?
. Sans le point d'interrogation, le nom implique que la méthode devrait créer un instantané, au lieu de vérifier si un est requis.
Dans ce cas, vous devriez repenser ce que vous demandez réellement. Quelque chose comme isSnapshotExpired
est un bien meilleur nom, et transmet ce que la méthode vous dira quand elle sera appelée. Suivre un modèle comme celui-ci peut également vous aider à conserver davantage de fonctions sans effets secondaires.
Si vous faites un recherche Google pour isEmpty()
dans l'API Java, vous obtenez beaucoup de résultats.
Si vous souhaitez que votre classe soit compatible avec spécification Java Beans , afin que les outils utilisant la réflexion (par exemple JavaBuilders , JGoodies Binding ) puissent reconnaître les valeurs booléennes. Getters, utilisez getXXXX()
ou isXXXX()
comme nom de méthode. De la spécification Java Beans:
8.3.2 Propriétés booléennes
De plus, pour les propriétés booléennes, nous permettons à une méthode getter de correspondre au modèle:
public boolean is
< PropertyName >()
;Cette méthode “is < PropertyName >” peut être fournie à la place d'une méthode “get < PropertyName > ", ou il peut être fourni en plus d’une méthode" get < PropertyName > ". Dans les deux cas, si la méthode “is < PropertyName >” est présente pour une propriété booléenne, nous utiliserons le “is < PropertyName > ”méthode pour lire la valeur de la propriété. Un exemple de propriété booléenne pourrait être:
public boolean isMarsupial(); public void setMarsupial(boolean m);
je veux poster ce lien car cela pourrait aider davantage les gens qui vérifient cette réponse et qui recherchent davantage Java
Directives de style de programmation Java
Le point 14 est particulièrement pertinent et suggère le préfixe is.
Le guide de style suggère ensuite:
Il existe quelques alternatives au préfixe is qui convient mieux dans certaines situations. Ce sont a, peut et devrait préfixes:
boolean hasLicense();
boolean canEvaluate();
boolean shouldAbort = false;
Si vous suivez les directives, je crois que la méthode appropriée serait nommée:
shouldCreateFreshSnapshot()
Pour les méthodes qui peuvent échouer, c’est-à-dire que vous spécifiez boolean comme type de retour, j’utiliserais le préfixe try
:
if (tryCreateFreshSnapshot())
{
// ...
}
Pour tous les autres cas, utilisez des préfixes comme is..
has..
was..
can..
allows..
..
Standard est d'utiliser 'est' ou 'a' comme préfixe. Par exemple, isValid
, hasChildren
.
is
est celui que j'ai rencontré plus que tout autre. Tout ce qui est logique dans la situation actuelle reste la meilleure option.