如何从枚举类型的属性文件中读取值?
问题描述:
我有如下的枚举:如何从枚举类型的属性文件中读取值?
public enum EnvironmentType {PRODUCTION, TEST, DEVELOPMENT}
属性文件中的键值是这样的:
app.environmentType = TEST
我们知道,当我读了属性值文件使用键,返回的字符串像
String envType = properties.getProperty("app.environmentType");
我的要求是,
EnvironmentType envType = EnvironmentType.TEST;
现在我想知道有没有办法让价值为enum
类型?我怎么能parse
或cast
呢?
答
EnvironmentType envType = EnvironmentType.valueOf(envTypeString);
答
你可以使用valueOf
方法如下:
String envTypeStr = properties.getProperty("app.environmentType");
EnvironmentType envType = EnvironmentType.valueOf(envTypeStr);
静态方法valueOf()
和values()
在编译时被创建并不会出现在源代码。但是它们出现在java库中的一些令人兴奋的文档中。例如,参见SortOrder
和Normalizer.Form
+1。比我的解决方案更优雅。 – Zohaib 2011-12-19 09:55:49
请注意,如果'envTypeString'包含与enum常量不对应的东西,则会抛出'IllegalArgumentException' - 这就是您可以检查该值是否有效的方法。 – Jesper 2011-12-19 10:05:01