371 votes

Quelle est la meilleure façon d'implémenter les constantes en Java ?

J'ai vu des exemples comme celui-ci :

public class MaxSeconds {
   public static final int MAX_SECONDS = 25;
}

et j'ai supposé que je pouvais avoir une classe Constants pour envelopper les constantes, en les déclarant static final. Je ne connais pratiquement rien à Java et je me demande si c'est la meilleure façon de créer des constantes.

1 votes

Juste pour ajouter constantes java : public/privé

0 votes

0voto

Joel Martinez Points 22924

Je ne dirais pas que la classe est la même (à part le boîtier) que la constante ... J'aurais au moins une classe de "Paramètres", ou "Valeurs", ou "Constantes", où toutes les constantes vivraient. Si j'en ai un grand nombre, je les regrouperais dans des classes de constantes logiques (UserSettings, AppSettings, etc.).

0voto

Andrew Harmel-Law Points 2841

Pour aller plus loin, vous pouvez placer les constantes utilisées globalement dans une interface afin qu'elles puissent être utilisées dans tout le système. Par exemple

public interface MyGlobalConstants {
    public static final int TIMEOUT_IN_SECS = 25;
}

Mais ne la mettez pas ensuite en œuvre. Il suffit de s'y référer directement dans le code via le nom de classe entièrement qualifié.

0voto

Bill K Points 36

Pour les constantes, Enum est un meilleur choix IMHO. Voici un exemple

public class myClass {

public enum myEnum {
    Option1("String1", 2), 
    Option2("String2", 2) 
    ;
    String str;
            int i;

            myEnum(String str1, int i1) { this.str = str1 ; this.i1 = i }

}

0voto

Javamann Points 1937

L'une des façons de procéder est de créer une classe 'Global' avec les valeurs de la constante et de faire une importation statique dans les classes qui ont besoin d'accéder à la constante.

0voto

wulfgar.pro Points 1567

static final est ma préférence, j'utiliserais seulement une enum si l'élément était effectivement énumérable.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X