gpt4 book ai didi

java - 如何将 JAXB 整数解码为其等效的枚举?

转载 作者:行者123 更新时间:2023-11-30 03:18:29 26 4
gpt4 key购买 nike

我有一个类:

@Data
@XmlRootElement(name="root")
@XmlAccessorType(XmlAccessType.FIELD)
public class rootClass
{
@XmlElement(name="test")
public FeFiFo test;
}

enum FeFiFo
{
FE,
FI,
FO,
}

还有一个 XML:

<root>
<test>1</test>
</root>

如何将 XML 解码到类中,以便 test 属性变为 FeFiFo.FI?目前它变为空。

最佳答案

您应该使用XmlJavaTypeAdapter

根类

@Data
@XmlRootElement(name="root")
@XmlAccessorType(XmlAccessType.FIELD)
public class rootClass
{
@XmlJavaTypeAdapter(EnumAdapter .class)
@XmlElement(name="test")
public FeFiFo test;
}

适配器

import javax.xml.bind.annotation.adapters.XmlAdapter;

public class EnumAdapter extends XmlAdapter<String, FeFiFo>
{

public FeFiFo unmarshal(String value) {
//if()
//else if()
//else

return FeFiFo.FE;
}

public String marshal(FeFiFo value) {
//if()
//else if()
//else
return "0";
}

}

关于java - 如何将 JAXB 整数解码为其等效的枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31931632/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com