как получить то же имя @XmlElement в java классе - PullRequest
0 голосов
/ 21 апреля 2020

Попытка упорядочить одно из сообщений, и мне нужно одно и то же имя для разных типов данных, чтобы имя тега оставалось тем же. Ниже приведен код, но он настроен только для одного типа данных вместо всех трех.

    @XmlAccessorType(XmlAccessType.FIELD) 
public class Event { 

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

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020
@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;      
     }
0 голосов
/ 21 апреля 2020

Вам нужен массив или список с @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());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...