我想读取一个数据文件,该数据文件有多个常量用于我的程序(例如MAXARRAYSIZE)。
然后我想通过输入类似于:ConstantsClassName.MAXARRAYSIZE的东西来在程序中的任何地方访问这些常量。我该如何实现这个类?
从数据文件中分配后,这些常量将永远不会在程序执行期间再次更改值。
感谢。
答案 0 :(得分:0)
在ConstantsClassName
类中使用静态块。
public class ConstantsClassName{
public static final String MAXARRAYSIZE;
static{
// read your file and store the data in;
MAXARRAYSIZE = valueRetrievedFromFile;
}
}
如果遵循常规声明的Java约定, MAXARRAYSIZE
应为MAX_ARRAY_SIZE
。
答案 1 :(得分:0)
如果你的文件中有很多常量,你可以使用下面的代码片段:
public static final HashMap<String, String> keyValues = new HashMap<>();
static{
BufferedReader br = null;
String line = null;
try{
br = new BufferedReader(new FileReader("datafile.txt"));
while((line=br.readLine())!=null){
//if Constant name and Value is separated by space
keyValues.put(line.split(" ")[0], line.split(" ")[1]);
}
}catch(IOException e){
e.printStackTrace();
}
}
现在使用keyValues HashMap获取常量的值,如
keyValues.get(&#34; MAXARRAYSIZE&#34);
通过这种方式,您不必为多个常量定义多个常量变量,只有keyValues HashMap足以存储所有常量及其值。希望它有所帮助。