Java 在Jaxb转换的枚举类中检索@XmlEnumValue注释属性值

Java 在Jaxb转换的枚举类中检索@XmlEnumValue注释属性值,java,xml,enums,jaxb,annotations,Java,Xml,Enums,Jaxb,Annotations,我有一个Enum类WeekEnum,它是一个Jaxb类 WeekEnum day=WeekEnum.SUNDAY 要从Enumday中获取值“Sunday”,我们编写day.value() 要从Enumday中获取值“SUNDAY”,我们编写day.name() 我们如何从Eumday获取值“星期日 如果我有值“Sunday”,我们如何得到相应的“Sunday.ON”?您需要将其存储在与值类似的单独变量中 @XmlType(name = "WeekEnum") @XmlEnum public e

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

WeekEnum day=WeekEnum.SUNDAY

要从Enumday中获取值“Sunday”,我们编写day.value()

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

我们如何从Eumday获取值“星期日


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

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

@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);
    }
}

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

@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);
    }
}

如果有一个名为week的枚举实例,则可以执行以下操作

@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);
}
}

如果有一个名为week的枚举实例,则可以执行以下操作

@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);
}
}

问题是我们无法控制枚举、值或注释。这是我们无法接触到的东西。它是第三方Jaxb。我们最多可以向Enum类添加方法。是否有任何方法可以使用Java核心方法获得所需的注释值。问题是我们无法控制枚举、值或注释。这是我们无法接触到的东西。它是第三方Jaxb。我们最多可以向Enum类添加方法。是否有任何方法可以使用Java核心方法获得所需的注释值。