如何从枚举类型的属性文件中读取值?

问题描述:

我有如下的枚举:如何从枚举类型的属性文件中读取值?

public enum EnvironmentType {PRODUCTION, TEST, DEVELOPMENT} 

属性文件中的键值是这样的:

app.environmentType = TEST 

我们知道,当我读了属性值文件使用键,返回的字符串像

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

我的要求是,

EnvironmentType envType = EnvironmentType.TEST; 

现在我想知道有没有办法让价值为enum类型?我怎么能parsecast呢?

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

你可以使用valueOf方法如下:

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

静态方法valueOf()values()在编译时被创建并不会出现在源代码。但是它们出现在java库中的一些令人兴奋的文档中。例如,参见SortOrderNormalizer.Form