Eg.
boolean isCurrent = false;
Comment nommez-vous ses getter et setter ?
Eg.
boolean isCurrent = false;
Comment nommez-vous ses getter et setter ?
Pourriez-vous indiquer la section des conventions de code de Sun où les noms des récupérateurs booléens sont spécifiquement couverts ? Je n'ai pas pu la trouver.
J'ai un boolean classé nommé hasCustomName
Maintenant, quel nom dois-je lui donner ? getter y setter méthodes ? Est-ce que setHasCustomName[setter]
y hasCustomName[getter]
Bien ?
@Hadi nommez simplement votre variable "customerName" et générez un getter et un setter pour celle-ci. Les getter et setters attendus sont public boolean isCustomerName(){return this.customerName;} public void setCustomerName(boolean customerName){this.customerName= customerName;}
http://geosoft.no/development/javastyle.html#Specific
is
doit être utilisé pour les variables et méthodes booléennes.
isSet
,isVisible
,isFinished
,isFound
,isOpen
Il s'agit de la convention de dénomination des méthodes et variables booléennes utilisées par Sun pour les paquets de base de Java. L'utilisation du préfixe is résout un problème commun problème courant de choix de mauvais noms booléens comme status ou flag. isStatus ou isFlag ne conviennent tout simplement pas, et le programmeur est obligé de choisir des noms plus noms plus significatifs.
Méthodes Setter pour les variables booléennes doivent avoir le préfixe set comme dans :
void setFound(boolean isFound);
Il existe quelques alternatives au préfixe is qui conviennent mieux dans certaines situations. Il s'agit des préfixes has, can et devrait :
boolean hasLicense(); boolean canEvaluate(); boolean shouldAbort = false;
Donc s'il y a la propriété booléenne hasData
à quoi ressemblerait le setter ? Très certainement, setData(bool hasData)
ça me semble terriblement mauvais...
Pour ceux qui veulent suivre la spécification des JavaBeans, il semble que has
, can
, should
Les préfixes ne font pas partie de la spécification. Référence Spécification JavaBeans 1.01 section 8.3.
Pour un champ nommé isCurrent
le nom correct du getter / setter est le suivant setCurrent()
/ isCurrent()
(du moins, c'est ce que pense Eclipse), ce qui est très déroutant et peut être ramené au problème principal :
Votre champ ne doit pas être appelé isCurrent
en premier lieu. Est est un verbe et les verbes sont inappropriés pour représenter l'état d'un objet. Utilisez un adjectif à la place, et soudainement vos noms de getter / setter auront plus de sens :
private boolean current;
public boolean isCurrent(){
return current;
}
public void setCurrent(final boolean current){
this.current = current;
}
Et si le booléen n'est pas une primitive ? Si c'est un booléen, doit-il être un get ou un is ?
Non, une telle méthode pourrait renvoyer null, ce qui provoquerait une NullPointerException. Mais j'essaierais d'éviter de renvoyer des booléens en premier lieu.
@Arun Je pense que cela devrait être set/get au lieu de set/is car le booléen est un objet au lieu d'une primitive, car il a 3 états, false, true ou null.
J'aime cette convention, mais les conventions n'ont pas vraiment d'importance. Le plus important est de s'en tenir à celle que vous avez choisie.
Conventions @Clement faire importe lorsque vous vous appuyez sur des outils qui utilisent ces conventions. JavaBeans est une convention largement soutenue par de nombreuses bibliothèques (JSP / JSF / Spring / Groovy, pour n'en citer que quelques-unes). Briser les conventions signifie briser le mode de fonctionnement de ces bibliothèques.
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.
2 votes
Je suppose que vous faites référence à JavaBeans, auquel cas la réponse de @Jigar Joshi est correcte. Cependant, si vous demandez des getter/setters génériques, la seule convention est que les méthodes contiennent le nom du champ et que le getter ne prend aucun argument et renvoie une valeur, le setter prend un argument et ne renvoie aucune valeur ou renvoie l'objet lui-même. Voir Buffer comme exemple d'une autre approche des getter/setters.