我有一个具有属性文件中所有配置的类。
我的第一个解决方案是这样的:
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
,或用其他获取值的方式代替它,例如通过从其他值计算得出,或从另一个对象读取。