Chaque fois que j'écris une méthode en Java avec plus de mots clés que public void
, chaque fois que je l'écris d'une autre manière. Quelquefois "static public void
" quelquefois "public static void
" etc.
Quel est le meilleur ordre (meilleures pratiques) pour ces mots clés?
[abstract/static
] [final
] [synchronized
] [public/private/protected
] [result_type
] ???
En théorie, peu importe si vous dites public static final ou final static public, mais si vous suivez la convention habituelle, d'autres personnes pourront lire votre code plus facilement. Voici l'ordre préféré:
[public | protégé | privé]
statique
abstrait
synchronisé
[transitoire | volatile]
final
originaire de
strictfp
[int | long | String | classe | enum | interface, etc.]
Checkstyle (qui implémente les suggestions des sections Java Spécifications du langage, 8.1.1 , 8.3.1 , et 8.4. ) dit:
L'ordre d'utilisation personnalisé des modificateurs est mentionné dans Java Language Specification (donc pas besoin d'avoir une opinion personnelle ;-)) par ex. pour modificateurs de méthode vous trouverez la définition suivante (extrait):
MethodModifiers: MethodModifier MethodModifiers MethodModifier MethodModifier: one of Annotation public protected private abstract static final synchronized native strictfp
Si deux ou plusieurs modificateurs de méthode (distincts) apparaissent dans une déclaration de méthode, il est habituel, bien que non obligatoire, qu'ils apparaissent dans l'ordre cohérent avec celui indiqué ci-dessus dans la production de MethodModifier.
Vous trouverez cette phrase à plusieurs autres endroits où l'utilisation de modificateurs est spécifiée, par ex. ici pour les modificateurs de champ.
(Ceci est principalement copié d'une autre réponse à moi ici ).
Le "meilleur" serait de suivre le Java Coding Style Guide , qui indique en 6.2 (déclaration de méthode):
public static final synchronized long methodName()
throws ArithmeticException, InterruptedException {
static int count;
}
Le meilleur ordre est celui que le reste de votre code utilise.
Comme ça:
public static final synchronized void calculate()
Ceci est mon choix personnel
public static final void method() { }
public void method() { }
public abstract void method() { }
cela semble également conforme à la documentation Java
Oui, il existe une commande standard.
Si vous utilisez un IDE, vous pouvez le configurer pour formater votre code pour vous, c'est-à-dire dans Eclipse dans Préférences -> Java -> Editeur -> Enregistrer les actions, vous pouvez cocher la case "Formater la source code"
Ensuite, vous n'avez plus à vous en soucier. Cela se fera automatiquement chaque fois que le fichier est enregistré et si tout votre projet l'utilise, alors pour tout le projet, le code est formaté de la même manière.