我的枚举类型ProductType正确保存为XML,但打开文件时并不想解组。
我制作了EnumAdapter:
public class EnumAdapter extends XmlAdapter<String, ProductType>
{
@Override
public ProductType unmarshal(String value) throws Exception {
try {
return ProductType.valueOf(value);
}
catch(Exception e) {
throw new JAXBException(e);
}
}
@Override
public String marshal(ProductType value) {
return value.toString();
}
}
我的产品类:
public class Product {
private final IntegerProperty ilosc; //quantity
private final StringProperty nazwa; //name
private final ObjectProperty<ProductType> typ; //type
private final BooleanProperty dostepnosc;
public Product()
{
this(null, 0, ProductType.ALKOHOL, true);
}
public Product(String nazwa, int ilosc, ProductType typ, boolean dostepnosc) {
this.nazwa = new SimpleStringProperty(nazwa);
this.ilosc = new SimpleIntegerProperty(ilosc);
this.typ = new SimpleObjectProperty<>(typ);
this.dostepnosc = new SimpleBooleanProperty(dostepnosc);
}
.
.
.
@XmlJavaTypeAdapter(EnumAdapter.class)
public ProductType getTyp() {
return typ.get();
}
在我的应用程序枚举后打开XML总是设置为默认构造函数的值(这是ALCOHOL,如果我更改它,枚举设置为它是什么)。我也知道EnumAdapter的编组工作正常,我可以把它改成我想要的任何东西。请帮忙。
答案 0 :(得分:0)
我解决了,我错过了正确的设置功能:
public void setTyp(ProductType type){
this.typ.setValue(type);