为什么java类不从实现的接口继承注释?

我正在使用依赖注入框架(Guice的AOP专门拦截一些方法调用)。我的类实现了一个接口,我想对接口方法进行注释,以便框架能够选择正确的方法。即使注释类型使用继承的注释实现类进行注释,也不会继承继承的java文档中所述的注释:

还要注意,这个元注释
只会导致注释被删除
继承自超类;
实现接口上的注释
没有效果

这可能是什么原因?了解对象的类在运行时实现的所有接口并不是一件很难的事情,所以这一决定背后一定有很好的理由

我想说的原因是,否则会出现多重继承问题

示例:

保留(RetentionPolicy.RUNTIME)
@继承的目标(ElementType.METHOD)
[email protected] Baz{String value();}
公共接口{
@Baz(“Baz”)void doStuff();
}
公共接口栏{
@Baz(“静脉”)无效doStuff();
}
公共类翻转{
@Baz(“flopp”)公共无效doStuff(){}
}
公共类MyClass扩展Flip实现了Foo,Bar{}

如果我这样做:

MyClass.class.getMethod(“doStuff”).getAnnotation(Baz.class).value()

结果会怎样?”baz,freeem,还是flopp


因此,接口上的注释很少有用

发表评论