web-dev-qa-db-fra.com

Java exemples constants (Créer un Java ne contenant que des constantes)

Quelle est la meilleure pratique pour déclarer un fichier Java n'ayant qu'une constante?

public interface DeclareConstants
{
    String constant = "Test";
}

OR

public abstract class DeclareConstants
{
    public static final String constant = "Test";
}
33
Shreyos Adikari

Aucun. Utilisation final class for Constants les déclarer comme public static final et statique importent toutes les constantes si nécessaire.

public final class Constants {

    private Constants() {
            // restrict instantiation
    }

    public static final double PI = 3.14159;
    public static final double PLANCK_CONSTANT = 6.62606896e-34;
}

Utilisation:

import static Constants.PLANCK_CONSTANT;
import static Constants.PI;//import static Constants.*;

public class Calculations {

        public double getReducedPlanckConstant() {
                return PLANCK_CONSTANT / (2 * PI);
        }
}

Voir le lien wiki: http://en.wikipedia.org/wiki/Constant_interface

72
Nandkumar Tekale

- Créez un Class avec public static finalchamps.

- Et puis vous pouvez accéder à ces champs à partir de n'importe quelle classe en utilisant le Class_Name.Field_Name.

- Vous pouvez déclarer le class comme final, de sorte que le classne peut pas être étendu (hérité) et modifié. ...

2
Kumar Vivek Mitra

Les deux sont valides mais je choisis normalement des interfaces. Une classe (abstraite ou non) n'est pas nécessaire s'il n'y a pas d'implémentations.

A titre indicatif, essayez de choisir judicieusement l'emplacement de vos constantes, elles font partie de votre contrat externe. Ne mettez pas toutes les constantes dans un seul fichier.

Par exemple, si un groupe de constantes n'est utilisé que dans une classe ou une méthode, placez-les dans cette classe, la classe étendue ou les interfaces implémentées. Si vous ne faites pas attention, vous pourriez vous retrouver avec un gros gâchis de dépendance.

Parfois, une énumération est une bonne alternative aux constantes (Java 5), ​​regardez: http://docs.Oracle.com/javase/1.5.0/docs/guide/language/enums.html

1
Víctor Herraiz

Vous pouvez également utiliser la classe Properties

Voici le fichier de constantes appelé

# this will hold all of the constants
frameWidth = 1600
frameHeight = 900

Voici le code qui utilise les constantes

public class SimpleGuiAnimation {

    int frameWidth;
    int frameHeight;


    public SimpleGuiAnimation() {
        Properties properties = new Properties();

        try {
            File file = new File("src/main/resources/dataDirectory/gui_constants.properties");
            FileInputStream fileInputStream = new FileInputStream(file);
            properties.load(fileInputStream);
        }
        catch (FileNotFoundException fileNotFoundException) {
            System.out.println("Could not find the properties file" + fileNotFoundException);
        }
        catch (Exception exception) {
            System.out.println("Could not load properties file" + exception.toString());
        }


        this.frameWidth = Integer.parseInt(properties.getProperty("frameWidth"));
        this.frameHeight = Integer.parseInt(properties.getProperty("frameHeight"));
    }
0
Russell Lego