web-dev-qa-db-fra.com

Modificateur Ordre des mots clés en Java

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] ???

50
user1227115

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.]

58
Nandkumar Tekale

Checkstyle (qui implémente les suggestions des sections Java Spécifications du langage, 8.1.1 , 8.3.1 , et 8.4. ) dit:

  1. publique
  2. protégé
  3. privé
  4. abstrait
  5. default
  6. statique
  7. final
  8. transitoire
  9. volatil
  10. synchronisé
  11. originaire de
  12. strictfp
40
Drew Stephens

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 ).

4
FrVaBe

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;
}
3
ewernli

Le meilleur ordre est celui que le reste de votre code utilise.

2
Matt Ball

Comme ça:

public static final synchronized void calculate()

1
Petar Minchev

Ceci est mon choix personnel

public static final void method() { }
public void method() { }
public abstract void method() { }

cela semble également conforme à la documentation Java

0
kabal

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.

0
Alan Escreet