पर एक डिफ़ॉल्ट वर्ग शाब्दिक मूल्य का उपयोग करना मैं निम्नलिखित टिप्पणी के साथ एक दिया सेम वर्ग के क्षेत्रों में से कुछ पर टिप्पणी करना चाहते हैं:एक एनोटेशन
@Target({FIELD})
@Retention(RUNTIME)
public @interface Process {
Class<? extends ProcessingStrategy> using() default DefaultImplStrategy.class;
}
बहुत अधिक डोमेन में जाने के बिना, प्रत्येक एनोटेट संपत्ति की जरूरत है इस पर परिभाषित एक प्रोसेसिंगस्ट्रेटी है, इसलिए एनोटेशन पर उपयोग() संपत्ति। यह ठीक है और जिस तरह से मैं इसे पसंद करता हूं काम करता है।
मैं भी अधिकांश समय (डिफ़ॉल्ट रूप से परिभाषित डिफ़ॉल्ट) का उपयोग करने के लिए रणनीति का एक डिफ़ॉल्ट कार्यान्वयन निर्दिष्ट करना चाहता हूं। यह ग्रहण में ठीक काम करता है।
हालांकि, जब मैं इस एक नियमित रूप से JDK (Maven के माध्यम से लागू) मैं निम्नलिखित त्रुटि मिलती है का उपयोग कर संकलित करने के लिए प्रयास करें:
found : java.lang.Class<DefaultImplStrategy>
required: java.lang.Class<? extends ProcessingStrategy>
मैं इसे जेनरिक, एनोटेशन, वर्ग शाब्दिक के कुछ संयोजन है अनुमान लगा रहा हूँ और दोषी जो यहां गलती हैं लेकिन मैं ईमानदारी से नहीं जानता क्यों। मैंने जेएलएस में डिफ़ॉल्ट मानों के आसपास के नियमों पर एक नज़र डाली है और मुझे लगता है कि कुछ भी उल्लंघन नहीं कर रहा है।
यह देखते हुए कि DefaultImplStrategy निश्चित रूप से प्रसंस्करणस्ट्रेटी लागू करता है, मैं यहां क्या गलत कर रहा हूं?
JDK क्या है संस्करण? –
यह jdk 1.6.0_16 – GaryF
इंटेलिजे में jdk1.5.0_19 के साथ यह ठीक संकलित करता है। –