ऐसा लगता है कि एक्सस्ट्रीम (com.thoughtworks.xstream -> xstream 1.4.2) तत्व में अंडरस्कोर को संभालने और नामों को बहुत अजीब तरीके से प्रबंधित कर रहा है। मुझे अपने गुणों में अंडरस्कोर वाले ग्राहक से एक्सएमएल लाने और पार्स करने की आवश्यकता है। एक्सस्ट्रीम के साथ यह मेरी पहली कोशिश है और मैं थोड़ा निराश हूं क्योंकि मैं सभी बदसूरत एक्सएमएल पार्सिंग से बचने की उम्मीद कर रहा था।एक्सस्ट्रीम और अंडरस्कोर
यहां मैं व्यवहार को हाइलाइट करने के लिए एक छोटा परीक्षण नमूना प्रदान करता हूं। आखिरी उदाहरण मेरी समस्या दिखाता है।
public class MyTest {
public void testIt() {
C1 a = new C1();
a.a_b= "a_b";
XStream xstream = new XStream();
xstream.processAnnotations(C1.class);
String xml = xstream.toXML(a);
Logger.info(xml);
C1 b = (C1) xstream.fromXML(xml);
Logger.info(b.a_b);
C1 c = (C1) xstream.fromXML("<C1 a_b=\"a_b\"/>");
Logger.info(c.a_b);
}
}
@XStreamAlias("C1")
class C1 {
@XStreamAsAttribute
String a_b;
}
यह
INFO: <C1 a__b="a_b"/>
INFO: a_b
INFO: null
आउटपुट अब मेरे सवाल - वहाँ Xstream एक भी अंडरस्कोर समझ में बनाने के लिए एक तरीका है?
धन्यवाद बहुत बहुत। एक्सस्ट्रीम (नया स्टैक्सड्राइवर (नया नोनामकोडर())) काम नहीं किया है इसलिए मैं एक कस्टम बनाने की जांच करूंगा। – eigil
NoNameCoder काम करता है। जब मैं जावा नामकरण सम्मेलनों के बारे में आपके सुझाव के आधार पर इसे बदलता हूं तो मैं बस @XStreamAlias ("a_b") को चर में जोड़ना भूल गया था। – eigil