Java和@annotations

Ant*_*arf 6 java spring annotations java-ee

在使用Java注释时,我不太明白这一点.这是一个例子:

我创建一个@Log注释并添加一些功能(每个使用@Log注释的方法在执行方法之前运行一些日志).

现在我正在创建一个像这样的新@SuperLog注释:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@Log
public @interface SuperLog {
     ............
}
Run Code Online (Sandbox Code Playgroud)

这个@SuperLog必须提供@Log所做的所有内容,以及一些特定于@SuperLog的额外内容.

不幸的是,当我执行一些使用@SuperLog注释的方法时,特定于@Log的日志不会执行.

我不明白为什么:@SuperLog用@Log注释的事实并不意味着它从@Log"继承"属性?不应该@SuperLog做@Log应该做的每一件事吗?

谢谢

Gho*_*ica 6

正如这个问题概述的那样,没有注释的继承.

除此之外:请记住,注释(主要是)在运行时获得意义,因为某些框架会对其存在作出反应.

换句话说:您可以创建一个框架,以某种方式支持继承树附带的注释.但假设您正在使用某个现有框架,则必须接受此框架正在执行的操作.