在Java中维护常量的最佳实践

时间:2015-01-13 19:45:51

标签: java web-services soap jaxb

我对Java Projects维护中的常量有疑问。从我的角度来看,当我们尝试将常量放在Abstract类中时:

public final class MyConstants {
public static final String CONSTANT1 = "const1";
public static final String CONSTANT2 = "const2";
public static final String CONSTANT3 = "const3";
public static final String CONSTANT4 = "const4";
}

之后在项目中的类中使用这些常量:

public void myMethod(final Map params) {
final String myparam = (String) params.get(MyConstants.CONSTANT1);
//DO SOMETHING WITH PARAMS
}

它导致锅炉板代码,常量的冗长使用,没有真正的进步。另一方面,如果我们把这些常数放在课堂上,以某种方式让人不喜欢它。他们说"我们有什么相同的常数声明在哪里?"问题是维护问题,如果我们改变那个类中的那些常量,那么改变可以在几个部分上看到而没有任何大问题。

这些常量主要用于映射java透视图的webservices,而不必像基于WSDL的JAXB那样生成POJO,webservices操作直接映射到Java中的键值映射。 我想知道您对这种方法的看法以及我们是否还有其他选择。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果我理解您的担忧,请不要将这些常量硬编码为值,除非可能是默认值,并将其存储为Properties和/或ResourceBundle(s)。您还可以阅读Properties上的Java教程。像,

Properties props = new Properties();
FileInputStream in = new FileInputStream("my.proprties");
props.load(in);
String v = props.get("CONSTANT_ONE", "const1"); // <-- the "1" is a default.

然后,如果您以后需要更改属性,则只需修改属性文件。