यदि किसी वर्ग ने एनोटेशन परिभाषित किया है, तो क्या यह किसी भी एनोटेशन को परिभाषित करने के लिए अपने उप-वर्ग को मजबूर करना संभव है?एनोटेशन को परिभाषित करने के लिए मैं जावा सबक्लास को कैसे मजबूर करूं?
उदाहरण के लिए, हम एक सरल वर्ग/उपवर्ग जोड़ी का हिस्सा है @Author @interface.
मुझे क्या करना चाहते हैं एक ही @Author
एनोटेशन परिभाषित करने के लिए प्रत्येक आगे उपवर्ग के लिए मजबूर, सड़क के नीचे कहीं एक RuntimeException
को रोकने है।
TestClass.java:
import java.lang.annotation.*;
@Retention(RetentionPolicy.RUNTIME)
@interface Author { String name(); }
@Author(name = "foo")
public abstract class TestClass
{
public static String getInfo(Class<? extends TestClass> c)
{
return c.getAnnotation(Author.class).name();
}
public static void main(String[] args)
{
System.out.println("The test class was written by "
+ getInfo(TestClass.class));
System.out.println("The test subclass was written by "
+ getInfo(TestSubClass.class));
}
}
TestSubClass.java:
@Author(name = "bar")
public abstract class TestSubClass extends TestClass {}
मैं जानता हूँ कि मैं क्रम में सभी एनोटेशन की गणना और लापता @Author
के लिए जाँच कर सकते हैं, लेकिन मैं वास्तव में क्या करना चाहते हैं यदि संभव हो, तो संकलन समय पर यह।
आप यह कैसे कर सकते हैं? मैं इसे देखना चाहता हूँ। –
लिंक काम नहीं करता है। – Raj