【发布时间】:2014-07-03 11:03:09
【问题描述】:
不可更改的常量值应为stored in constants rather than variables,以使代码更安全、更简洁。
但后者并不适用于所有不可更改值的情况:以下方法仅调用一次,在初始化应用程序时使用相同的字符串值两次。 String 仅在方法内部被引用和使用。
我的问题是:变量/常量定义的最佳方式是什么?作为大型应用中的简单String,性能和内存可以忽略不计,更多的是可读性和可维护性。
是否作为方法内部的变量:
protected void init() {
final String thestring = "thevalue";
methodA(thestring);
methodB(thestring);
}
还是在类级别作为常量(虽然只在方法中使用):
private static final String THESTRING = "thevalue";
protected void init() {
methodA(THESTRING);
methodB(THESTRING);
}
还是第三种更好的解决方案?另请注意,同一类中可能有更多类似的方法。
【问题讨论】:
-
为了可维护性,人们宁愿将值保存在配置/属性文件中。
-
为什么不用这个字符串定义一个新的
ENUM并使用它? -
“哪个是最好的?”,在这种情况下,在旁观者的眼中非常重要。在许多情况下,您应该只在代码中使用文字字符串内联,而不是定义“变量”来保存它。在其他情况下,您所做的事情由翻译问题很好地定义。如果变量需要轻松修改(例如,它是一个 URL 或类似的),那么将它放在顶部会更容易找到,即使只在一个地方使用。
标签: java variables constants code-readability