我正在从xml文件中读取配置。我的配置中有一个名为linkType
的属性。我的项目中有等效的枚举类,它声明了两种类型的链接。
如何从String设置枚举类型?如果我从配置中读取EMPTY
并且如果我将linkType.EMPTY声明为枚举,我将如何将其设置为EMPTY?
因为在我的代码中我在这个枚举上有一个switch语句但我无法从配置
设置它答案 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”。