2017-03-28 21 views
0

My Enum型のProductTypeがXMLに正しく保存されていますが、ファイルを開くときに非整列化したくありません。 Java JAXB非整列列挙型

は私が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(); 
    } 

} 

マイProductクラス:

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を開いた後、常にI場合は、アルコールである(デフォルトコンストラクタからの値に設定されますそれを変更すると、列挙型は何でも設定されます)。私はまた、EnumAdapterからのマ​​ーシャリングが正しく動作することを知っています。私はそれを私が望むものに変更できます。助けてください。

答えて

0

私は、適切な設定機能がありませんでした、それを解決:

​​