दोस्तों को एनोटेशन को प्रत्यक्ष पैरामीटर के रूप में पास करने का कोई तरीका है (बल्कि सभी प्रतिबिंब ओवरहेड करके)? उदाहरण के लिए, निम्नलिखित कोड में, मेरे पास एक एनोटेशन नंबर है जो एक int मान रखता है, मैं addImpl विधि में पैरामीटर के रूप में पास करना चाहता हूं, मैं यह कैसे कर सकता हूं (प्रतिबिंब के अलावा)?जावा एनोटेशन को पैरामीटर के रूप में पास करने का कोई तरीका है?
कोड स्निपेट:
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
public @interface Number {
int value();
}
public void add(int x2) {
addImpl(@Number(value = 10) lol, x2);
}
public void addImpl(Number a, int b) {
System.out.println(a.value() + b);
}
public static void main(String[] args) {
new TestClass().add(3);
}
संख्या एक नियमित रूप से वर्ग एक एनोटेशन के बजाय के रूप में परिभाषित किया गया है क्यों: JSR 303 सत्यापनकर्ता का उदाहरण परीक्षण के लिए ऐसा दिखाई दे सकता? एनोटेशन का उद्देश्य संकलन समय पर मेटा-डेटा को स्थिर रूप से जोड़ने के लिए है। यदि वह आपका लक्ष्य नहीं है, तो एनोटेशन के रूप में परिभाषित करने का कारण क्या है? – jthg
संख्या सिर्फ एक नमूना चीज है जो मैं आया था, मैं प्रोटोकॉल इन्स आसान बनाने के लिए ऐसा कर रहा हूं;) –