我的问题是:如果我想从文件中声明一个检索到的值作为常量我将如何做?
编辑:为简单起见,请说该值为“int”。
答案 0 :(得分:8)
我不认为您正在寻找final
关键字?
final int foo = /* get it from the file */;
答案 1 :(得分:5)
不确定此变量的范围。就创建常量而言,“final”关键字是您必须使用的所有关键字。根据运行时数据定义最终的本地或实例变量很容易,但声明一个静态的最终类成员更难;在加载和初始化类时,你必须有值,所以你必须在静态初始化程序块中以某种方式执行它:
public static final int CONSTANT;
static {
CONSTANT = <something!>;
}
答案 2 :(得分:2)
这是你可以做到的一种方法,只需用您的函数替换generatePseudoConstant()即可从文件系统中读取。
public class PseudoConstant {
public static final int PSEUDO_CONSTANT;
private static final Random randomGen = new Random();
static {
PSEUDO_CONSTANT = generatePsudoConstant();
}
public static void main(String args[]) {
PseudoConstant instance1 = new PseudoConstant();
PseudoConstant instance2 = new PseudoConstant();
System.out.println("PSEUDO_CONSTANT (instance1) = " + instance1.PSEUDO_CONSTANT);
System.out.println("PSEUDO_CONSTANT (instance2) = " + instance2.PSEUDO_CONSTANT);
}
private static int generatePsudoConstant() {
return randomGen.nextInt(10);
}
}
干杯!