我的应用程序中会有很多String文本。因此,我认为所有这些字符串都在一堂课。因此,如果需要,可以很容易地修改字符串。
public class MyMessage {
static final String NAME = "JOE";
static final String AGE = "21";
......
}
然后在MyMessage.NAME
和MyMessage.AGE
等其他类中访问它。
1。)这种方法是否正确?
2.)我还发现,我们可以使用属性文件来实现。这是真的? (执行此操作的最佳方法是什么property file
或having static methods in a java class
)
答案 0 :(得分:3)
是的,您可以使用属性文件,通常这是一种更好的方法。除此之外,它还允许您为不同的语言选择不同的资源。有关详细信息,请参阅ResourceBundle
和PropertyResourceBundle
的文档。
你可能仍然希望有一个类型来维护资源包密钥,但我个人认为它是枚举而不是类中的常量。
答案 1 :(得分:1)
如果要更改常量类文件中任何常量的值,则必须重新编译该类。但是在使用属性文件时不需要这样做。所以属性文件是更好的选择。
答案 2 :(得分:1)
这取决于你真正想要实现的目标。您是否希望在不修改程序源代码的情况下轻松添加新字符串?你想支持多种语言吗?这取决于你的实际情况。
除了您的建议,一种流行的方法是使用资源包。这些主要用于对字符串进行分组,使您可以更轻松地编辑它们。他们支持的另一个功能(您可能不需要这个)具有多种语言,即您希望支持的每种语言的不同资源包。实际的字符串保存在属性文件中。
这是一个很好的教程:http://www.avajava.com/tutorials/lessons/how-do-i-read-a-properties-file-with-a-resource-bundle.html
答案 3 :(得分:1)
@invariant其他人不同意我的做法。你有什么意见? 在这?
这取决于你改变这些值的频率,让我用一个例子解释一下,在我的应用程序中,为了这个目的,我必须在许多类中使用美国的州名,我更喜欢创建一个类
public class Juridictions {
public static final String OH = "OH";
public static final String CA = "CA";
..
}
//when ever i need
if(localvalue.equals(Juridictions.CA) {
system.out.println("you are from CA !");
}
使用属性文件方法来处理这个用例(我相信状态名称不会改变!)过早优化(因为它需要更多代码才能从文件读取然后在需要时使用值而不是以上方法)
如果您不确定更改价值的频率,请按如有疑问则将其删除,