jaxb にはまだ問題があります。
実際、昨日、jaxbとインターフェースの問題を見つける方法でコードを変更しました。それ以来、同じ名前の2つのプロパティでこの問題が発生しています...
探しましたが、@XmlElements{...} の特殊なケースがあります。
このように書くとうまくいきます
@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;
}
}
しかし、@XmlElement を追加すると、2 つのエラーが発生します。1 つは jaxb でインターフェイスを処理できず、もう 1 つは同じ名前です。
@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;
}
}
残念ながら、@XmlElement を追加して xml ファイルを作成する必要があります