web-dev-qa-db-ja.com

Java定数の例(Javaファイルを作成)

Java定数のみを持つファイルを宣言するためのベストプラクティスは何ですか?

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

OR

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

どちらでもない。つかいます final class for Constantsとして宣言しますpublic static finalおよびstaticは、必要な場所にすべての定数をインポートします。

public final class Constants {

    private Constants() {
            // restrict instantiation
    }

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

使用法 :

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

public class Calculations {

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

Wikiリンクを参照してください: http://en.wikipedia.org/wiki/Constant_interface

72

-public static finalClassを作成しますフィールド

-そして、Class_Name.Field_Nameを使用して、任意のクラスからこれらのフィールドにアクセスできます。

-classfinalとして宣言できるため、class拡張(継承)および変更不可)。 ...

2

どちらも有効ですが、通常はインターフェイスを選択します。実装がない場合、クラス(抽象または非抽象)は必要ありません。

アドバイスとして、定数の場所を賢明に選択するようにしてください。定数は外部契約の一部です。 1つのファイルにすべての定数を入れないでください。

たとえば、定数のグループが1つのクラスまたは1つのメソッドでのみ使用されている場合、それらをそのクラス、拡張クラス、または実装されたインターフェイスに配置します。気をつけないと、大きな依存関係の混乱に陥る可能性があります。

時々、列挙は定数(Java 5)の優れた代替手段です。次を参照してください。 http://docs.Oracle.com/javase/1.5.0/docs/guide/language/enums.html

1
Víctor Herraiz

Propertiesクラスを使用することもできます

以下は定数ファイルです

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

定数を使用するコードは次のとおりです

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