簡體   English   中英

在Java程序中對文本字符串進行硬編碼的替代方法?

[英]Alternative practice for hard coding text strings in a Java program?

在我的程序中,我有很多字符串和重復的字符串。 有沒有一種方法可以將文本字符串與源代碼分開。 我不想在程序中對字符串進行硬編碼。

在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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM