Searchable.javaप्रतिबिंब getAnnotations() रिटर्न अशक्त
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Searchable { }
Obj.java
public class Obj {
@Searchable
String myField;
}
शून्य (String [] args)
Annotation[] annotations = Obj.class.getDeclaredField("myField").getAnnotations();
मैं annotations
की उम्मीद करूँगा जिसमें मेरा @Searchable
होगा। हालांकि यह null
है। दस्तावेज़ीकरण के अनुसार, यह विधि:
इस तत्व पर मौजूद सभी एनोटेशन लौटाता है। (इस तत्व में कोई एनोटेशन नहीं है, तो लंबाई शून्य की सरणी देता है।) इस विधि का कॉलर लौटाए गए सरणी को संशोधित करने के लिए स्वतंत्र है; इसका अन्य कॉलर्स पर लौटे गए सरणी पर कोई प्रभाव नहीं पड़ेगा।
(मेरे लिए) और भी अजीब है कौन सा है, क्योंकि यह रिटर्न null
बजाय Annotation[0]
।
मैं यहां क्या गलत कर रहा हूं और अधिक महत्वपूर्ण, मैं अपना Annotation
कैसे प्राप्त कर पाऊंगा?
ऐसा लगता है कि यह मेरी मशीन पर काम करता है। रनटाइम पर आप जावा संस्करण का उपयोग कर रहे हैं? क्या आप अपनी कस्टम एनोटेशन पर '@Retention (RetentionPolicy.RUNTIME) 'लाइन मौजूद कर सकते हैं? आप कैसे जानते हैं कि यह 'शून्य' देता है? क्या आप अपना इस्तेमाल कर कोड स्निपेट प्रदान कर सकते हैं? – sp00m
बिल्कुल। जेडीके 1.7.0 के साथ काम करता है। –
@ sp00m मैंने अपने आईडीई से कॉपी किया, RUNTIME उपलब्ध है। मुझे पता है कि यह बदबू आ रही है क्योंकि मैंने इसे डीबग किया था। मैं जेडीके 1.7.0 का उपयोग कर रहा हूँ। – Aquillo