उदाहरण ए काम क्यों करता है, उदाहरण के लिए बी एक "जेएक्सबी एनोटेशन एक विधि पर रखा गया है जो एक जेएक्सबी संपत्ति नहीं है" अपवाद?क्यों JAXB गेटर्स पर एनोटेशन की अनुमति नहीं देता है जो सभी एक ही सदस्य चर से खींचते हैं?
मैं वसंत एमवीसी के साथ जेएक्स-डब्ल्यूएस का उपयोग कर रहा हूं।
उदाहरण A
package com.casanosa2.permissions;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "FooXMLMapper")
public class FooXMLMapper implements IFoo {
@XmlElement
private final boolean propA;
@XmlElement
private final boolean propB;
public FooMapper(IFoo foo) {
propA = foo.getPropA()
propB = foo.getPropB()
}
public FooMapper() {
propA = false;
propB = false;
}
@Override
public boolean getPropA() {
return propA;
}
@Override
public boolean getPropB() {
return propB;
}
}
उदाहरण B
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(name = "FooXMLMapper")
public class FooXMLMapper {
private final IFoo foo;
public FooMapper() {
foo = new IFoo() {
@Override
public boolean getPropA() {
return false;
}
@Override
public boolean getPropB() {
return false;
}
};
}
public FooXMLMapper(IFoo foo) {
this.foo = foo;
}
@XmlElement
public boolean getPropA() {
return foo.getPropA();
}
@XmlElement
public boolean getPropB() {
return foo.getPropB();
}
}
बर्नार्ड संपत्ति का उपयोग एक्सेस प्रकार के रूप में कर रहा है, इसलिए केवल प्राप्त/सेट विधि की जांच की जानी चाहिए। –
आप सही थे, XmlAccessType.NONE को ठीक कर दिया। अब मेरे पास पहले से मौजूद डेटा को डुप्लिकेट करने वाले मूर्ख सदस्य चर नहीं हैं। :) –
XmlAccessType.NONE काम करेगा, लेकिन यह सही नहीं है। कोई मतलब केवल नक्शा स्पष्ट रूप से एनोटेट किया गया है। यदि आप FIELD या प्रॉपर्टी का उपयोग करते हैं तो आप डिफॉल्टिंग का लाभ उठा सकते हैं। मुझे अभी भी विश्वास है कि आपकी समस्या में संपत्ति का उपयोग निर्दिष्ट है लेकिन एनोटेटिंग फ़ील्ड शामिल हैं। –