क्या दो एनोटेशन को एक-दूसरे के पारस्परिक रूप से अनन्य होने के रूप में चिह्नित करना संभव है?परस्पर अनन्य एनोटेशन
मैं एक कस्टम JUnit धावक (कम अधिमानतः) एक रनटाइम त्रुटि मिल गया है और मुझे यकीन है कि अगर एक परीक्षण @Test
के साथ अपने एनोटेशन @Custom
यह अंकन के साथ चिह्नित है (अधिमानतः) फेंक जाएगा बनाने के लिए एक संकलन त्रुटि चाहते हैं या।
कारण मुझे यह चाहिए कि @Custom
मूल रूप से @Test
है लेकिन परीक्षण से पहले कुछ अतिरिक्त प्री-प्रोसेसिंग के साथ। और, जिस तरह से मैंने इसे कोड किया है, प्रत्येक कस्टम टैग के लिए (हाँ, एक से अधिक है), परीक्षण प्रत्येक बार संबंधित प्री-प्रोसेसिंग के साथ कई बार चलाया जाएगा। इसलिए, इसे @Test
के लिए चलाने के साथ-साथ यह समझ में नहीं आता है क्योंकि उस परीक्षण का अर्थ कुछ प्री-प्रोसेसिंग है।
और, हाँ, मैं अपने ढांचे में @Custom
और @Test
दोनों का समर्थन करना चाहता हूं (हालांकि, एक ही परीक्षण विधि के लिए नहीं)।
ठीक है, आप इसे रनटाइम त्रुटि के रूप में आसानी से कार्यान्वित कर सकते हैं; आपके '@ कस्टम' को संसाधित करने वाले कोड के दौरान बस यह जांचें कि '@ टेस्ट' अतिरिक्त रूप से मौजूद है या नहीं। मुझे विश्वास नहीं है कि एनोटेशन प्रोसेसर के उपयोग के बिना संकलन समय पर यह संभव है; दर्द का एक पूरा क्षेत्र जो संभवतः सार्थक नहीं है। – FauxFaux
पीएमडी जैसे स्थिर विश्लेषण उपकरण यहां सहायता कर सकते हैं। –
इसे आजमाएं http://stackoverflow.com/questions/378616/can-i-generate-a-compile-time-error-based-on-the-type-of-the-field-being-annotat – Shahzeb