如果一個類定義了一個註釋,是否有可能迫使它的子類定義相同的註釋?如何強制Java子類定義註釋?
例如,我們有一個簡單的類/子對共享@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
,但我真的很喜歡做的事這在編譯時,如果可能的話。
你怎麼能這樣做?我想看看它。 – 2014-03-02 05:00:39