मैंने एक एनोटेशन बनाया है, इसे डीटीओ पर लागू किया है और जावा 1.6 स्टाइल एनोटेशन प्रोसेसर लिखा है। मैं देख सकता हूं कि एनोटेशन कैसे करें प्रोसेसर एक नई स्रोत फ़ाइल लिखता है, जो मैं नहीं करना चाहता हूं, मैं नहीं देख सकता हूं कि यह मौजूदा वर्ग को कैसे संशोधित कर सकता है (आदर्श रूप से केवल बाइट कोड को संशोधित करें)। संशोधन वास्तव में काफी छोटा है, मैं चाहता हूं कि प्रोसेसर एक नया गेटर और सेटर डालने के लिए है जहां नाम संसाधित होने वाले एनोटेशन के मूल्य से आता है।संकलन समय बुनाई करने के लिए आप जावा 1.6 एनोटेशन प्रोसेसिंग का उपयोग कैसे करते हैं?
मेरा एनोटेशन प्रोसेसर इस तरह दिखता है;
@SupportedSourceVersion(SourceVersion.RELEASE_6)
@SupportedAnnotationTypes({ "com.kn.salog.annotation.AggregateField" })
public class SalogDTOAnnotationProcessor extends AbstractProcessor {
@Override
public boolean process(final Set<? extends TypeElement> annotations, final RoundEnvironment roundEnv) {
//do some stuff
}
}
यह निश्चित रूप से एक समाधान है, लेकिन मुझे पूरा यकीन है कि यह एकमात्र समाधान नहीं है। मैं जो करना चाहता हूं वह कई मौजूदा ढांचे/टूलसेट्स, जैसे जैवसिस्ट द्वारा किया जा सकता है। मैं एक निर्भरता को पेश करने से बचने की कोशिश कर रहा था जो कि सख्ती से जरूरी नहीं दिखता है, हालांकि, जेडीके 1.6 में एनोटेशन प्रसंस्करण की शुरुआत जैवसिस्ट की कार्यक्षमता की तरह दिख रही थी। शायद मैं गलत था और मुझे अभी भी एक की आवश्यकता है संकलन समय बुनाई करने के लिए तीसरे पक्ष के उपकरण। – Steve