web-dev-qa-db-fra.com

Définir une chaîne constante en Java?

J'ai une liste de chaînes constantes que je dois afficher à différents moments au cours de mon Java programme.

En C, je pourrais définir les chaînes comme ceci en haut de mon code:

#define WELCOME_MESSAGE "Hello, welcome to the server"
#define WAIT_MESSAGE "Please wait 5 seconds"
#define EXIT_MESSAGE "Bye!"

Je me demande quelle est la manière habituelle de faire ce genre de choses en Java?

57
csss

En général, vous définiriez ceci vers le haut d'une classe:

public static final String WELCOME_MESSAGE = "Hello, welcome to the server";

Bien sûr, utilisez la visibilité de membre appropriée (public/private/protected) en fonction de l'endroit où vous utilisez cette constante.

112
derekerdmann

Cela ressemblerait à ceci:

public static final String WELCOME_MESSAGE = "Hello, welcome to the server";

Si les constantes ne sont utilisées que dans une seule classe, vous voudriez les transformer en private au lieu de public.

12
public static final String YOUR_STRING_CONSTANT = "";
5
RePRO

Une autre norme typique du secteur consiste à avoir un fichier de classe nommé Constants.Java contenant toutes les constantes à utiliser dans tout le projet.

4
V_Singh

Vous pouvez utiliser

 public static final String HELLO = "hello";

si vous avez plusieurs constantes de chaîne, vous pouvez utiliser un fichier de propriétés externe/une simple classe "titulaire constant"

4
user1190541

simplement utiliser

final String WELCOME_MESSAGE = "Hello, welcome to the server";

la partie principale de cette instruction est le mot clé "final".

2
mok

Nous déclarons habituellement la constante sous la forme static. La raison en est que Java crée des copies de variables non statiques chaque fois que vous instanciez un objet de la classe.

Donc, si nous faisons les constantes static, ce ne sera pas le cas et économiserait de la mémoire.

Avec final, nous pouvons rendre la variable constante.

Par conséquent, la meilleure pratique pour définir une variable constante est la suivante:

private static final String YOUR_CONSTANT = "Some Value"; 

Le modificateur d'accès peut être private/public En fonction de la logique applicative.

2
Pritam Banerjee