0

我将在我的应用程序中有很多字符串文本。因此,我认为将所有这些字符串归为一类。因此,如果有需要,可以很容易地修改字符串。

public class MyMessage {

static final String NAME = "JOE";
static final String AGE = "21";
......

}

然后在其他类(如MyMessage.NAME和)中访问它MyMessage.AGE

1.) 这种方法正确吗?

2.)我还发现,我们可以使用属性文件来做到这一点。这是真的?(什么是最好的方法来做到这一点property filehaving static methods in a java class

4

4 回答 4

3

是的,您可以使用属性文件,通常这是一种更好的方法。除此之外,这还允许您为不同的语言选择不同的资源。ResourceBundle有关详细信息,请参阅文档PropertyResourceBundle

您可能仍然希望有一个类型来维护资源包键,但我个人会将其设为枚举而不是类中的常量。

于 2012-12-01T18:17:03.867 回答
1

If you want to change value of any constant in your constant class file you will have to recompile the class. But you don't need to do it when you using properties file. So properties file is better option.

于 2012-12-01T18:17:47.517 回答
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 !");
}

对此用例使用属性文件方法(我相信状态名称不会改变!)是 过早优化(因为它需要从文件中读取更多代码,然后在需要时使用值而不是上述方法)

如果你不确定你改变价值观的频率,那么在有疑问时将其排除在外

于 2012-12-01T19:19:30.987 回答
1

这在一定程度上取决于您真正想要实现的目标。您是否希望在不修改程序源代码的情况下轻松添加新字符串?你想支持多种语言吗?这要看你的实际情况如何。

除了您的建议之外,一种流行的方法是使用资源包。这些本质上用于对字符串进行分组,并使您更容易编辑它们。他们支持的另一个特性(你可能不需要这个)是拥有多种语言,即你想要支持的每种语言都有不同的资源包。实际的字符串保存在属性文件中。

这是一个很好的教程:http ://www.avajava.com/tutorials/lessons/how-do-i-read-a-properties-file-with-a-resource-bundle.html

于 2012-12-01T18:21:16.273 回答