Rapide Java question à propos de private static final des mots-clés pour les champs
Je suis à la déclaration d'un champ:
private static final String filename = "filename.txt";
D'abord, l'ordre de private static final
question? Si non, est-il une norme acceptée de la séquence ou de la convention?
Deuxième, la filename
dans mon application est fixe. Est-ce le meilleur moyen était de stocker sa valeur?
- static final est préféré selon JLS!
Vous devez vous connecter pour publier un commentaire.
- Je utiliser Checkstyle avec Eclipse, ce qui entraîne un avertissement si la déclaration est dans un ordre différent de celui que vous avez indiqué, citant le Langage Java Specification (JLS). Par exemple,
résultats dans
Ils ont cette page qui répertorie l'ordre qu'ils attendent, mais en suivant les liens sur cette page grâce à la JLS je ne vois rien du tout pour sauvegarder leur affirmation d'une commande.
Cela dit, l'ordre, suggèrent-ils, semble correspondre à l'ordre dans la plupart des codes que j'ai vu, il semble avoir une convention toute à adopter.
Pas. Mais c'est la séquence j'ai l'habitude de le voir utilisé.
C'est un choix raisonnable, mais certains préfèrent un fichier de configuration, soit Propriétés ou un autre format de fichier (par exemple, XML). De cette façon, vous pouvez modifier le nom de fichier sans avoir à recompiler.
Il est commun en Java pour donner des constantes (
static final
valeurs) une majuscule nom, donc je voudrais écrire:Voir aussi Les Conventions de programmation pour le Langage de Programmation Java. (Ceux qui sont le Soleil du code de conventions que la majorité des programmeurs Java utilisation).
La plus acceptée de l'ordre de ces mots-clés est
private static final
. Vous pouvez aussi mémoriser l'ordre de ces mots-clés à l'aide de PSF motif que:L'ordre n'a pas d'importance, mais vous pouvez toujours jouer avec elle - il y a seulement 6 possibilités à tester.
Je ne suis pas au courant de toute convention, même si j'ai mis le modificateur de visibilité premier (public/privé/protégé), de sorte que vous pouvez le globe oculaire et il lignes.
Si elle est fixe alors vous pouvez le faire, mais je pense toujours à quelque chose est une constante, seulement pour découvrir plus tard (lors d'un test, par exemple) que je veux transmettre. Un argument sur la ligne de commande ou un fichier de propriétés qui fonctionne pour ce cas, et c'est un minimum d'effort à mettre en place.
voir: http://docs.oracle.com/javase/specs/jls/se5.0/html/classes.html#8.3.1
8.3.1 Les Modificateurs De Champ
FieldModifiers:
FieldModifier
FieldModifiers FieldModifier
FieldModifier: l'un des
Annotation public protégé privé
static final transitoire volatils
...
Si deux ou plus de deux (distinctes) modificateurs de champ apparaissent dans un champ de la déclaration, il est coutumier, bien que non requis, qu'ils apparaissent dans l'ordre conformes à celles présentées ci-dessus dans la production de FieldModifier.
Pour compléter la réponse belle par @Hobo ci-dessus par un lien actuel
[...]