aracılığıyla enumlar için özel değer serileştirmesi sağlama Üzerinde çalıştığım bir proje için, kullanımda çok fazla sayıda kaynağımız var. Model nesnenin kendisi çok küçük sınıflardan oluşur; Bu model daha sonra DB olarak XML olarak JAXB ile serileştiriyoruz. Şimdi, enum değerlerimizi, enumdaki belirli bir yöntemin geri dönüşünü kullanarak serileştirmek istiyoruz; O verilir:JAXB
public enum Qualifier {
FOO("1E", "Foo type document"),
BAR("2", "Bar object");
private String code, description;
public Qualifier(String code, String description) {
this.code = code;
this.description = description;
}
public String getCode() {
return this.code;
}
public String getDescription() {
return this.description;
}
}
vs vs XML tefrika Şu anda, biz böyle bir şey olsun: JAXB bunu nasıl işleyeceğini ise
<qualifier>FOO</qualifier>
. Ancak, getCode() dönüş olmak değeri gerekir ve yukarıdaki XML parçası görünüyor ki bizim çeteleler bir sürü, (kodu aracılığıyla arama için karşılık gelen bir statik yöntemle) o uylaşımını yaptığı gibi:
Bunun yerine,<qualifier>1E</qualifier>
. @XmlEnum
ve @XmlEnumValue
ile açıklama ekleyebiliriz, ancak bu çok sıkıcıdır - bazı numaralar 30'a kadar numaralandırılmış değerlere sahiptir ve el ile düzenleme iyi değildir. Bunun yerine özel bir seri hale getirici kullanmayı düşünüyoruz, ancak şu an bu rotayı sürdürmekten kaçınmak istiyorum (ama eğer bu şekilde giderse, o zaman bununla bir sorunum yok).
Herhangi bir fikir nasıl?
Hmm ... Bu bizim aradığımız benziyor
Adaptör. Sorunum gerçekten (enum üzerinde jenerikleri kullanamazsınız) yeterince genel olmadığını, ama bu işe yarar bu.Enum değerlerinin kendilerine açıklama eklemek yerine enum başına bir bağdaştırıcı oluşturmak daha iyi olacaktır. Teşekkürler! – jmibanez