我有一个具有属性文件中所有配置的类。

我的第一个解决方案是这样的:

public class Config {

    public static final int disc;

    static {

        // Read property file and set properties

        disc = 5;
    }
}


以这种方式读取信息:

System.out.println(Config.disc);


第二种解决方案是:

public class Config {

    private int disc;

    public void Config() {

        // Read property file and set properties

        disc = 5;
    }

    public int getDisc() {
        return this.disc;
    }
}


以这种方式阅读:

System.out.println(new Config().getDisc());


最好的方法是什么?为什么?有什么优缺点?

最佳答案

答案取决于disc的含义:


如果disc表示一个常量,本质上为数字值赋一个名称,则比公共final字段更好
如果disc表示可能因用户的操作而改变的值(即如果它是配置的一部分),则首选带有getter的私有变量。


第二种方法为您提供了更大的灵活性,如果您将来决定重构您的类:它可以让您在以后的时间初始化私有disc,或用其他获取值的方式代替它,例如通过从其他值计算得出,或从另一个对象读取。

09-30 23:16