在我的程序中,我有很多字符串和重复的字符串。有没有办法将文本字符串与源代码分开。我不想在我的程序中硬编码字符串。
在 PHP 中,我曾经有一个文件,其中包含每个字符串的列表变量。但是因为 Java 是 OOP,所以我不知道如何实现相同的想法。
我的程序是一个命令行程序。
在我的程序中,我有很多字符串和重复的字符串。有没有办法将文本字符串与源代码分开。我不想在我的程序中硬编码字符串。
在 PHP 中,我曾经有一个文件,其中包含每个字符串的列表变量。但是因为 Java 是 OOP,所以我不知道如何实现相同的想法。
我的程序是一个命令行程序。
另一种选择是拥有属性文件(键值),就像你在 PHP 中所做的一样。
即使它是命令行程序,您仍然可以拥有属性文件。您可以将文件位置作为命令参数传递(或)将文件相对于类放置并使用相对路径来访问文件。
如果您的字符串不需要由非 Java 开发人员更改,您可以简单地将它们全部放在一个单独的类中,如下所示:
public final class Texts {
public static final String MYSTR1 = "str1";
public static final String MYSTR2 = "str2";
...
private Texts() {} // Prevents instantiation
}
这样做会使一些维护任务更容易,例如:
使用静态类来保存你的全局变量。
public class Statics
{
public static final String GLOBAL_NAME = "Stuff";
public static final int GLOBAL_INT = 9999;
}
并在您的课程中像这样访问它。
Statics.GLOBAL_NAME
如果您使用的是 Java 1.7 (SE 7),则可以使用 java.util.Properties。java 文档提供了很好的解释。这是一个代码片段:
String fileName = "/path/to/file/thePropertiesFileName.properties";
FileReader reader = new FileReader(fileName);
Properties prop = new Properties();
prop.load(reader);