Nếu một lớp xác định chú thích, có thể nào đó có thể buộc lớp con của nó xác định cùng một chú thích không?Làm cách nào để buộc một phân lớp Java định nghĩa một chú thích?
Ví dụ, chúng ta có một cặp lớp/lớp con đơn giản mà chia sẻ @Author @interface.
Những gì tôi muốn làm là buộc mỗi lớp con hơn nữa để xác định cùng @Author
chú thích, ngăn ngừa một RuntimeException
đâu đó xuống đường.
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 {}
Tôi biết tôi có thể liệt kê tất cả các chú thích trong thời gian chạy và kiểm tra sự mất tích @Author
, nhưng tôi thực sự muốn làm điều này tại thời gian biên dịch, nếu có thể.
Bạn có thể làm như thế nào? Tôi thích nhìn nó. –
Liên kết không hoạt động. – Raj