一尘不染

Java中是否有类似注释继承的内容?

java

我正在探索批注,并得出了一些批注似乎在其中具有层次结构的观点。

我正在使用注释在Cards的后台生成代码。卡的类型不同(因此代码和注释也不同),但是其中某些特定的元素(例如名称)是相同的。

@Target(value = {ElementType.TYPE})
public @interface Move extends Page{
 String method1();
 String method2();
}

这就是常见的注释:

@Target(value = {ElementType.TYPE})
public @interface Page{
 String method3();
}

在上面的示例中,我希望Move可以继承method3,但会收到一条警告,指出扩展对注释无效。我试图让Annotation扩展一个通用的基数,但这是行不通的。那有可能还是仅仅是设计问题?


阅读 172

收藏
2020-09-08

共1个答案

一尘不染

抱歉不行。显然,它与读取类上的注释而不会完全加载它们的程序有关。请参见为什么无法在Java中扩展注释?

但是,如果类型注解是,则类型的确会继承其超类的注解@Inherited

另外,除非需要这些方法进行交互,否则可以将注解堆叠在类上:

@Move
@Page
public class myAwesomeClass {}

有什么原因对您不起作用吗?

2020-09-08