Bonjour,
j'ai une petite question concernant l'instanciation de variables final et static.
J'ai pris pour habitude de faire cette opération pour tous mes noms de fichiers afin d'éviter les problèmes en cas de changement d'OS :
Pour des raisons de facilité je souhaite regrouper en début de classe la déclaration de tous les noms de fichiers utilisés dans la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 String nomDuFichier = new String("repertoire1/repertoire2/leNom.ext"); nomDuFichier = nomDuFichier.replace('/',File.separatorChar);
Si j'ai bien compris, l'intérêt d'une variable déclarée comme final est qu'elle ne sera plus modifiée donc le compilateur peut directement remplacer le liens vers la variable par la valeur de la variable là où elle est utilisée. Ce qui doit donc amener à un gain de rapidité à l'exécution mais permet une modification rapide et facile du code en changeant la variable à un seul endroit, ou bien s'assurer que une valeur à toujours la même signification (toutes les variables de SwingConstants par exemple).
Ma question est donc, qu'advient-il si j'écris ceci :
ça passe très bien à la compilation mais est-ce que je conserve le changement de caractère propre à l'OS ou bien je remplace directement le '/' par le separatorChar de Windows ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public static final String nomDuFichier = ("repertoire1/repertoire2/leNom.ext").replace('/',File.separatorChar);
Je penche pour la première solution mais du coup je me demande si dans ce cas la déclaration en static et final a un intérêt notable ?
merci pour votre avis,
Bon code,
kerinel
Partager