2010-03-26 14 views
7

मैं गतिशील रूप से एक वर्ग टिप्पणी करने के लिए इसे और अधिक संभव के रूप में सामान्य बनाना चाहते:गतिशील वर्ग एनोटेशन

public class Test<T> { 

    @XmlAttribute(name = dynamicvalue) 
    T[] data; 

    public Test(String dynamicvalue) { 
    } 
} 

वहाँ किसी भी तरह से कुछ इस तरह प्राप्त करने के लिए है।

टीए

उत्तर

4

सं एनोटेशन स्थिर वर्ग-स्तरीय जानकारी होते हैं और वे उदाहरण के क्षेत्रों के मूल्यों (नहीं, वे स्थिर क्षेत्रों या तो के मूल्यों से प्रभावित नहीं कर सकते हैं) से प्रभावित नहीं किया जा सकता।

1

आप नए बाइटकोड में लोड करके रनटाइम पर नई कक्षाएं बना सकते हैं, इसलिए सिद्धांत में यह संभव होना चाहिए (याद रखें, एनोटेशन कक्षा से जुड़े हैं, ऑब्जेक्ट नहीं)। और आप उन्हें बनाने में मदद के लिए Java Assist जैसे एपीआई का उपयोग कर सकते हैं। एक annotation package है जिसे आप देख सकते हैं।

यह आसान नहीं होगा।

+1

यदि आप इस मार्ग पर जाते हैं, तो ध्यान दें कि आपको अभी भी विभिन्न एनोटेशन के साथ कई कक्षाएं बनाना होगा। इस तरह की एक आम वर्ग होने के उद्देश्य को हरा देता है। –

+0

मुझे लगता है कि जनलज़ा को कुछ बाहरी एपीआई (शायद एक एक्सएमएल सीरिएलाइज़र) से निपटने के लिए ऐसा करने की ज़रूरत है, अन्यथा आप केवल एक आवृत्ति चर का उपयोग करेंगे। –

+0

विचार एक आइटम के लिए एक सामान्य वर्ग बनाना था और फिर विरासत के लिए अभिभावक वर्ग एनोटेशन का उपयोग करना था, लेकिन नाम को स्वचालित रूप से बदलना बदलना था। गतिशील मान वर्ग टेम्पलेट पर निर्भर करता है। – jlanza

संबंधित मुद्दे