2017-05-20 60 views
0

爲了組織目的,我想在一個單獨的類(Constants.java)中存儲一系列「字符串」。如何在其他Java類中將變量存儲在字符串中?

Constants.java:

public static final String qualification1 = "'Priority' = \"" + priority + "\" AND 'Status' = \"In Progress\" AND 'Assignee' = \"" + assigneeInput + "\""; 
... 

在我的主應用程序類,我想從上面

Main.java調用這些:

// Examples to show that these variables are dynamic 
String assigneeInput = soapResponseAssignee.getSOAPBody().getTextContent(); 
String[] priorityList = {"Low", "Medium", "High", "Critical"}; 

for (String priority : priorityList) { 
    String qualification = RemedyConstants.qualification1; 
    String qualification = RemedyConstants.qualification2; 
    String qualification = RemedyConstants.qualification3; 
    ... 
} 

問題是提供給我的主類的字符串往往有變量,即01在那裏定義的或assigneeInput。如果我將字符串存儲在其他地方,即Constants.java,我實際上不會使用我想要的字符串。如何提供我想要的字符串,同時在適當的上下文中引用這些變量?

+0

步驟1)瞭解'Properties'文件。第2步創建一個'.properties'文件。第3步)使用「{0} ... {n}」佔位符將字符串存儲在'.properties'文件中。第4步)創建一個實用程序類(如'Constants'),它具有'getString(String key,Object ... arguments)'。步驟5)使用'Properties'和'MessageFormat.format'實現該方法。步驟6)如果需要,爲'MessageFormat'實例添加一個緩存層。步驟7)利潤。 –

回答

2

使用字符串格式

public static final String qualification1 = "'Priority' = \"%s\" AND 'Status' = \"In Progress\" AND 'Assignee' = \"%s\""; 

然後,當你想使用它

String.format(qualification1, "Low", "Alice"); 

或添加功能到你的類做格式

String getQualification1(String priority, String assignee) { 
    return String.format(qualification1, priority, assignee); 
} 
0

這很簡單。不知道爲什麼它沒有點擊開始,我可以把字符串作爲一個對象的屬性...

Main.java:

String qualification = RemedyConstants.getQualification1(priority, assigneeInput); 

Constants.java:

public static String getQualification1(String priority, String assigneeInput) { 
     return "'Priority' = \"" + priority + "\" AND 'Status' = \"In Progress\" AND 'Assignee' = \"" + assigneeInput + "\""; 
    } 
+0

你可以做到這一點,這將工作。但是將這些字符串硬編碼到代碼中是不好的。這也會比緩存的'MessageFormat'慢一些。我建議你看看[我的評論](https://stackoverflow.com/questions/44085702/how-can-i-store-strings-with-variables-in-them-in-another-java-class#評論75193817_44085702)更詳細。 –

相關問題