如何从配置中设置枚举

时间:2010-12-15 17:14:36

标签: java

我正在从xml文件中读取配置。我的配置中有一个名为linkType的属性。我的项目中有等效的枚举类,它声明了两种类型的链接。

如何从String设置枚举类型?如果我从配置中读取EMPTY并且如果我将linkType.EMPTY声明为枚举,我将如何将其设置为EMPTY?

因为在我的代码中我在这个枚举上有一个switch语句但我无法从配置

设置它

3 个答案:

答案 0 :(得分:3)

听起来你正在寻找Enum.valueOf

(对于不精确的链接抱歉,无法获取URL中的空间。)

答案 1 :(得分:2)

所有枚举都有一个静态方法valueOf(string),如果字符串与枚举的成员匹配,则返回枚举的实例。

答案 2 :(得分:0)

如果您使用XML进行配置,则可以使用InPUT。您可以在设计空间描述符中定义有效值:

<SParam id="linkType">
    <SChoice id="EMPTY"/>
    <SChoice id="NON_EMPTY"/>
    ...
</SParam>

在代码映射描述符中,您可以决定它如何映射到您的代码:

<Mapping id="linkType" type="my.package.linkType"/>
<Mapping id="linkType.EMPTY" type="EMPTY"/>
<Mapping id="linkType.NON_EMPTY" type="NON_EMPTY"/>
...

最后,在您的配置中(例如,“config.xml”),您写道:

<SValue id="linkType" value="EMPTY"/>

InPUT负责Enum治疗。从你的代码中你打电话:

Design input = new Design("config.xml");
LinkType lt = input.getValue("linkType");

对于单个参数,您可能无法付出努力。但是如果你有很多属性,并且你想确保只能获取某些值,那么InPUT可能是一个选项。

附注:根据惯例,枚举“linkType”应称为“LinkType”。