如何在 java class 中获得相同的@XmlElement 名称

how to get same @XmlElement name in java class

尝试编组其中一条消息,我需要不同数据类型的相同名称,以便标签名称保持不变。以下是代码,但它只设置了一种数据类型,而不是所有三种。

    @XmlAccessorType(XmlAccessType.FIELD) 
public class Event { 

 @XmlElement(name="DataRows")
        private XData xData;
        @XmlElement(name="DataRows")
        private YData yData;
        @XmlElement(name="DataRows")
        private ZData zData;   
 }

您需要一个包含 @XmlElement(name="DataRows")

的数组或列表

你可以这样做:

@XmlAccessorType(XmlAccessType.FIELD)
public static class Event {

    @XmlTransient
    private XData xData;
    @XmlTransient
    private YData yData;
    @XmlTransient
    private ZData zData;

    @XmlElement(name="DataRows")
    public List<Object> getDataRows() {
        return Stream.of(xData, yData, zData).collect(Collectors.toList());
    }
}
@XmlAccessorType(XmlAccessType.FIELD)   
 public class Event {   
    @XmlElements(value = {@XmlElement(name="DataRows", type=XData.class),
                @XmlElement(name="DataRows", type=YData.class),
                @XmlElement(name ="DataRows",type=ZData.class)
        })
        private Object typeOfData;      
     }