java方法注释继承
所以,我的问题是,我使用注释来标记类的方法
我的主要注释是@Action
,我需要一个针对特定方法的更强注释,即@SpecificAction
所有用@SpecificAction
注释的方法都必须注释为@Action
。
我的想法是用@Action
注释@SpecificAction
@Action
[other irrelevant annotations]
public @interface SpecificAction{}
与
@SpecificAction
public void specificMethod(){}
我希望specificMethod.isAnnotationPresent(Action.class)
是真的,但事实并非如此
我怎样才能使@Action
注释被“继承”呢
# 1 楼答案
正如@assylias的链接所说,注释不能被继承,但您可以使用组合,递归搜索目标注释,如下所示:
如果你有:
您可以这样使用:
AnnotationUtil.getAnnotations(specificMethod, Action.class);
,这将返回一个映射:{interface foo.ParticularAction=@foo.ParticularAction(), interface foo.SpecificAction=@foo.SpecificAction()}