124 votes

Getters booléens Java "est" vs "sont"

Je sais que la convention en Java pour les booléens getters est d'inclure le préfixe "est".

isEnabled
isStoreOpen

Mais que faire si le sujet est au pluriel? C'est, si au lieu de vouloir savoir si un magasin est ouvert, je voulais savoir si tous les magasins sont ouverts?

isStoresOpen() n'a pas de sens en anglais.

Je suis tenté d'écrire des getters comme:

areStoresOpen
areDogsCute
areCatsFuzzy

Et je pense que ce serait plus logique, mais j'ai été dit par d'autres que je devrais tout simplement le sucer et à s'abandonner sous réserve accord des verbes et d'utiliser isStoresOpen, isDogsCute, isCatsFuzzy.

De toute façon, que dois-je faire pour booléenne getters qui opèrent sur un sujet pluriel?

141voto

satur9nine Points 3901

Que diriez-vous d’avoir assez d’anglais et de suivre le standard Java:

isEveryStoreOpen() ou isEachCatCute()

En cas de doute sur le mot juste, j'aime toujours bander le thésaurus.

66voto

John Points 12438

Je ne me souviens pas de quel livre il provenait, mais l'essentiel est que le code sera lu beaucoup plus de fois qu'il n'a été écrit. Ecrire pour la lisibilité.

38voto

Bhesh Gurung Points 24875

La convention est le préfixe de la lecture-la méthode avec "est" pas la variale lui-même. Pour le pluriel de scénario, vous savez que la variable est juste une.

par exemple

private boolean enabled;

public boolean isEnabled() {
    return enabled;
}

et

private boolean storesOpen;

public boolean isStoresOpen() {
    return storesOpen;
}

isStoresOpen() n'a aucun sens en anglais.

Il a un sens de la lisibilité point de vue. Mais, ce qui sur le la Java convention elle-même? Il a déjà, et de façon bien trop de code a déjà été écrit à modifier pour le rendre sensible selon anglaise grammaire.

19voto

Steve Kuo Points 15196

La spécification Java Bean indique d'utiliser get pour les accesseurs sauf si c'est un boolean puis utiliser is . are n'est pas standard et ne sera pas reconnu par tout ce qui attend un nom standard de Bean.

17voto

Kevin Rubin Points 456

Beaucoup d'outils attendent is ou get et ne reconnaîtront probablement pas are .

Essayez de les reformuler, comme getDogsAreFuzzy() ou getStoresAreOpen() ou des choses comme ça pour améliorer la compatibilité et les conventions.

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