2011-12-19 239 views
5

我有如下的枚舉:如何從枚舉類型的屬性文件中讀取值?

public enum EnvironmentType {PRODUCTION, TEST, DEVELOPMENT} 

屬性文件中的鍵值是這樣的:

app.environmentType = TEST 

我們知道,當我讀了屬性值文件使用鍵,返回的字符串像

String envType = properties.getProperty("app.environmentType"); 

我的要求是,

EnvironmentType envType = EnvironmentType.TEST; 

現在我想知道有沒有辦法讓價值爲enum類型?我怎麼能parsecast呢?

回答

3
EnvironmentType envType = EnvironmentType.valueOf(envTypeString); 
+0

+1。比我的解決方案更優雅。 – Zohaib 2011-12-19 09:55:49

+4

請注意,如果'envTypeString'包含與enum常量不對應的東西,則會拋出'IllegalArgumentException' - 這就是您可以檢查該值是否有效的方法。 – Jesper 2011-12-19 10:05:01

3

你可以使用valueOf方法如下:

String envTypeStr = properties.getProperty("app.environmentType"); 
EnvironmentType envType = EnvironmentType.valueOf(envTypeStr); 

靜態方法valueOf()values()在編譯時被創建並不會出現在源代碼。但是它們出現在java庫中的一些令人興奮的文檔中。例如,參見SortOrderNormalizer.Form