【问题标题】:Java annotation on interface method definition not being processed?接口方法定义上的Java注释没有被处理?
【发布时间】:2014-12-02 10:28:55
【问题描述】:

我的代码结构如下:

public interface InterfaceName {
    @AnnotationTwo
    public void method_name();  
} 

public class InterfaceNameImpl implements InterfaceName{
    @AnnotationOne
    public void method_name() {

    }
}

当我调用 method_name 时,@AnnotationOne 已处理但 @AnnotationTwo 未处理(根据日志判断) 我是否需要为@AnnotationTwo 进行某种配置或处理? (另外,注释的代码是外部的,所以我不能改变它)。理想情况下,我希望在@AnnotationOne 之前处理@AnnotationTwo

我在@AnnotaionTwo 的执行周围有一个aspectj 连接点,并且没有执行相应的代码。然而对应关节点@AnnotationOne的aspectj代码被执行。我希望@AnnotationTwo对应的代码在@AnnotationOne对应的代码之前处理。

注意:我正在使用带有加载时间编织的 apsectj,如 here 所述

【问题讨论】:

  • 您是否检查过有关 java 注释和方法覆盖的信息:stackoverflow.com/questions/10082619/…
  • @Vikdor 这谈到了一个类扩展其他类的情况。我认为那与我的情况不同。还是行为相同?

标签: java annotations aspectj spring-aop


【解决方案1】:

不是最新鲜的答案,但我相信它仍然成立:

接口方法的注解在实现接口时不会被继承。
Annotation is not inherited from interface method
Why java classes do not inherit annotations from implemented interfaces?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-30
    • 2020-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多