0

在我的程序中,我有很多字符串和重复的字符串。有没有办法将文本字符串与源代码分开。我不想在我的程序中硬编码字符串。

在 PHP 中,我曾经有一个文件,其中包含每个字符串的列表变量。但是因为 Java 是 OOP,所以我不知道如何实现相同的想法。

我的程序是一个命令行程序。

4

4 回答 4

3

另一种选择是拥有属性文件(键值),就像你在 PHP 中所做的一样。

即使它是命令行程序,您仍然可以拥有属性文件。您可以将文件位置作为命令参数传递(或)将文件相对于类放置并使用相对路径来访问文件。

于 2012-12-02T21:21:53.720 回答
3

如果您的字符串不需要由非 Java 开发人员更改,您可以简单地将它们全部放在一个单独的类中,如下所示:

public final class Texts {
    public static final String MYSTR1 = "str1";
    public static final String MYSTR2 = "str2";
    ...
    private Texts() {} // Prevents instantiation
}

这样做会使一些维护任务更容易,例如:

  • 您可以重构常量名称,以便自动更改所有用途。
  • 您可以轻松找到使用每个常量的用户。
  • 您可以快速发现常量的值是什么,并且可以非常快速地导航到它。
于 2012-12-02T21:29:34.343 回答
1

使用静态类来保存你的全局变量。

public class Statics
{
 public static final String GLOBAL_NAME = "Stuff";
 public static final int GLOBAL_INT = 9999;
}

并在您的课程中像这样访问它。

Statics.GLOBAL_NAME
于 2012-12-02T21:25:01.203 回答
1

如果您使用的是 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);
于 2012-12-02T21:35:12.937 回答