पर एनोटेशन मामले वर्ग मैदान पर परिभाषित का उपयोग कैसे मैं निम्नलिखित जावा एनोटेशन परिभाषित किया हैरनटाइम
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value() default "";
}
और मैं निम्नलिखित स्केला मामले वर्ग परिभाषित किया है:
@Prefer("xyz")
case class TestAnno(arg1 : String, @Prefer("abc") agr2 : String)
मैं प्रतिबिंब का उपयोग कर कक्षा स्तर के मामले में परिभाषित एनोटेशन को सक्षम करें लेकिन मैं arg2
केस श्रेणी TestAnno
के सदस्य के लिए परिभाषित एनोटेशन तक पहुंच नहीं पा रहा हूं। कोड को डी-संकलित करते हुए मैं देखता हूं कि न तो परिवर्तनीय घोषणा या इसके स्केल एक्सेसर को एनोटेशन लगता है। केवल कन्स्ट्रक्टर परिभाषा और copy
विधि वर्ग की घोषणा में परिभाषित मानकों के लिए एनोटेशन को बनाए रखने लगती है।
वहाँ क्षेत्रों मामले कक्षा में घोषित के लिए एनोटेशन उत्पन्न करने के लिए स्केला संकलक मजबूर करने के लिए कुछ अन्य रास्ता नहीं है या मैं निर्माता पढ़ सकते हैं और ASM ByteCode Library या ParaNamer के रूप में एक पुस्तकालय में इस तरह का उपयोग खोजने के लिए जो पैरामीटर जो एनोटेशन की है? एक समाधान की आवश्यकता है जो मुख्य रूप से स्कैला केस कक्षाओं के लिए काम करेगी।
प्रतिबिंब द्वारा इन पैरामीटरों को आप कैसे एक्सेस करते हैं, इस पर निर्भर करते हुए, आपको '@ setter',' @ getter', या '@ param' को इसके बजाय या @ @ field' के साथ जोड़ना पड़ सकता है। (आप उन सभी के साथ प्रयास कर सकते हैं, और उन्हें एक-एक करके हटा सकते हैं।) – al3xar