यह पहली बार है जब मैं एनोटेशन प्रोसेसर लिख रहा हूं और मैं इसे प्रोग्रामेटिक रूप से आमंत्रित करना चाहता हूं। क्या यह संभव है?प्रोग्रामेटिक रूप से एनोटेशन प्रोसेसर का आह्वान
@SupportedAnnotationTypes({"app.dev.ems.support.annotation.HBMModel"})
public class HBMModelProcessor extends AbstractProcessor {
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
Set<? extends Element> elements = roundEnv.getElementsAnnotatedWith(HBMModel.class);
System.out.println(elements);
return true;
}
}
अब मैं प्रक्रिया विधि आह्वान करने के लिए चाहते हैं, तो कैसे मैं यह कर सकता:
मैं प्रोसेसर के लिए छोटे कोड लिखा है? क्या मैं इसे निम्न तरीके से कर सकता हूं:
HBMModelProcessor modelProcessor = new HBMModelProcessor();
modelProcessor.process(annotations, roundEnv)
कोई भी जानकारी मेरे लिए बहुत उपयोगी होगी।
धन्यवाद।
उत्तर के लिए धन्यवाद। तो इन दो चर 'एनोटेशन' और 'roundEnv' प्राप्त करने का कोई तरीका नहीं है? –
बेशक 'एनोटेशन' और 'राउंडएएनवी' पाने का एक तरीका है। 'एनोटेशन = नया हैशसेट(); एनोटेशन जोड़ें (/ * अपनी एनोटेशन * /); 'और' roundEnv = नया RoundEnvironment() {/ * कार्यान्वयन * /} 'क्या आप अपने प्रोसेसर को यूनिट-टेस्ट करने का प्रयास कर रहे हैं? आप शायद एक मॉकिंग फ्रेमवर्क का उपयोग कर सकते हैं। –
emory
@emory, मैं इकाई को एनोटेशन प्रोसेसर का परीक्षण करना चाहता हूं। और एक नमूना स्वागत किया जाएगा क्योंकि यह पहली Google प्रविष्टि है। – Snicolas