java - 检索 Jaxb 转换的 Enum 类中的 @XmlEnumValue 注释属性值

标签 java xml enums jaxb annotations

@XmlType(name = "WeekEnum")
@XmlEnum
public enum WeekEnum implements Serializable {

    MONDAY("Monday"),

    @XmlEnumValue("SUNDAY.ON")
    SUNDAY("Sunday")

    private final String value;

    WeekEnum(String v) {
        value = v;
    }

    public String value() {
        return value;
    }

    public static WeekEnum fromValue(String v) {
        for (WeekEnum c: WeekEnum.values()) {
            if (c.value.equals(v)) {
                return c;
            }
        }

        throw new IllegalArgumentException(v);
    }
}

我有一个 Enum 类 WeekEnum,它是一个 Jaxb 类。

WeekEnum day = WeekEnum.SUNDAY;

要从枚举 day 获取值“Sunday”,我们编写 day.value();

要从枚举 day 中获取值“SUNDAY”,我们编写 day.name();

我们如何从 Eum day 获取值“SUNDAY.ON”??

如果我有值“Sunday”,我们如何获得相应的“SUNDAY.ON”??

最佳答案

您需要将其存储在与值类似的单独变量中。

@XmlType(name = "WeekEnum")
@XmlEnum
public enum WeekEnum implements Serializable {

MONDAY("Monday"),

@XmlEnumValue("SUNDAY.ON")
SUNDAY("Sunday", "SUNDAY.ON")

private final String value;
private final String xmlValue;

WeekEnum(String v) {
    value = v;
}
WeekEnum(String v, String xmlValue){
   this(v);
   this.xmlValue = xmlValue;
}

public String value() {
    return value;
}

public String getXmlValue() {
    return xmlValue;
}

public static WeekEnum fromValue(String v) {
    for (WeekEnum c: WeekEnum.values()) {
        if (c.value.equals(v)) {
            return c;
        }
    }

    throw new IllegalArgumentException(v);
}
}

关于java - 检索 Jaxb 转换的 Enum 类中的 @XmlEnumValue 注释属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743251/

相关文章:

java - Vim 下 Java 变量名高亮显示

javascript - HTML 页面中的 XML/XSL 转换表

java - 创建一个给定显式 Node 引用的 "sub-tree"NodeList

java - jackson 枚举序列化和反序列化器

swift - 像在 Java 中一样在 Swift 2 中编写一个简单的枚举

ios - 在哪里创建以及如何在 iOS 中使用枚举?

java - 将 Object[] 转换为 byte[] 时出错

java - http get 返回 403

java - 好处或使用 XML 优于 MySQL,反之亦然?

Java时区通过双值更新