Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 类有两个同名的属性;“行动列表”;_Java_Xml_Jaxb - Fatal编程技术网

Java 类有两个同名的属性;“行动列表”;

Java 类有两个同名的属性;“行动列表”;,java,xml,jaxb,Java,Xml,Jaxb,jaxb仍然存在一些问题 事实上,昨天我改变了我的代码,以查找jaxb和接口的问题,因为我有两个同名属性的问题 我寻找了一个特殊的@xmlmelements{…} 如果我这样写的话,它就行了 @XmlAccessorType(XmlAccessType.FIELD) public class Event { String name; @XmlElements(value = { @XmlElement(type=FTPSend.class), @XmlEleme

jaxb仍然存在一些问题

事实上,昨天我改变了我的代码,以查找jaxb和接口的问题,因为我有两个同名属性的问题

我寻找了一个特殊的@xmlmelements{…}

如果我这样写的话,它就行了

@XmlAccessorType(XmlAccessType.FIELD)
public class Event {

String name;
@XmlElements(value = {
        @XmlElement(type=FTPSend.class),
        @XmlElement(type=SFTPSend.class),
        @XmlElement(type=MailSend.class),
        @XmlElement(type=ServerToServerSend.class)
    })
ArrayList<IAction> actionsList = new ArrayList<IAction>();

public Event(){

}

public Event(String name) {
    super();
    this.name = name;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public ArrayList<IAction> getActionsList() {
    return actionsList;
}

public void setActionsList(ArrayList<IAction> actionsList) {
    this.actionsList = actionsList;
}
@xmlacessortype(xmlacesstype.FIELD)
公开课活动{
字符串名;
@XmlElements(值={
@XmlElement(类型=FTPSend.class),
@XmlElement(类型=SFTPSend.class),
@XmlElement(类型=MailSend.class),
@XmlElement(类型=ServerToServerSend.class)
})
ArrayList actionsList=新建ArrayList();
公共活动(){
}
公共事件(字符串名称){
超级();
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公共阵列列表getActionsList(){
返回操作列表;
}
公共无效集合actionsList(ArrayList actionsList){
this.actionsList=actionsList;
}
}

但是如果我添加@XmlElement,我有两个错误,一个是jaxb不能处理接口,另一个是同名的

@XmlAccessorType(XmlAccessType.FIELD)
public class Event {

String name;
@XmlElements(value = {
        @XmlElement(type=FTPSend.class),
        @XmlElement(type=SFTPSend.class),
        @XmlElement(type=MailSend.class),
        @XmlElement(type=ServerToServerSend.class)
    })
ArrayList<IAction> actionsList = new ArrayList<IAction>();

public Event(){

}

public Event(String name) {
    super();
    this.name = name;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

**@XmlElement**
public ArrayList<IAction> getActionsList() {
    return actionsList;
}

public void setActionsList(ArrayList<IAction> actionsList) {
    this.actionsList = actionsList;
}
@xmlacessortype(xmlacesstype.FIELD)
公开课活动{
字符串名;
@XmlElements(值={
@XmlElement(类型=FTPSend.class),
@XmlElement(类型=SFTPSend.class),
@XmlElement(类型=MailSend.class),
@XmlElement(类型=ServerToServerSend.class)
})
ArrayList actionsList=新建ArrayList();
公共活动(){
}
公共事件(字符串名称){
超级();
this.name=名称;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
**@XmlElement**
公共阵列列表getActionsList(){
返回操作列表;
}
公共无效集合actionsList(ArrayList actionsList){
this.actionsList=actionsList;
}
}


不幸的是,我需要添加@XmlElement来构建我的xml文件

如果您注释一个字段及其相应的属性,您将得到一个异常,您只需要执行其中一个

对于解组,您的JAXB实现需要一些指示,以确定要解组的正确类。下面我为每个类指定了一个唯一的元素名。此映射对应于XML模式中的选择结构

@XmlElements(value = {
    @XmlElement(type=FTPSend.class, name="FTPSend"),
    @XmlElement(type=SFTPSend.class, name="SFTPSend"),
    @XmlElement(type=MailSend.class, name="MailSend"),
    @XmlElement(type=ServerToServerSend.class, name="ServerToServerSend")
})
ArrayList<IAction> actionsList = new ArrayList<IAction>();
@XmlElements(值={
@XmlElement(type=FTPSend.class,name=“FTPSend”),
@XmlElement(type=SFTPSend.class,name=“SFTPSend”),
@XmlElement(type=MailSend.class,name=“MailSend”),
@XmlElement(type=ServerToServerSend.class,name=“ServerToServerSend”)
})
ArrayList actionsList=新建ArrayList();
了解更多信息