在Overriding时继续并显示自定义Java注释

时间:2017-11-02 11:02:16

标签: java android android-studio annotations override

我正在寻找一种方法,可以在覆盖用所述Annotations修饰的方法时继续并显示自定义Java注释。

考虑使用此自定义注释:

@Retention(RetentionPolicy.SOURCE)
@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER })
public @interface SeeMe {

}

考虑用它来装饰方法:

@SeeMe
public void iSeeYou() {
    // Do something
}

当我覆盖上述方法时,如何继续显示@SeeMe注释并显示?

@Override
@SeeMe
public void iSeeYou() {
    super.iSeeYou();
}

基本上我想要@Nullable和@NonNull注释达到相同的效果。

1 个答案:

答案 0 :(得分:0)

注释处理器的作者定义了注释的语义,包括注释是否被继承。

  • 作者可能会编写注释处理器来继承注释,因此用户必须编写更少的注释。
  • 作者可能会将注释处理器编写为不继承注释,因此通过单独查看类来明确类的含义,而不必阅读每个超类。

这些都是一种可辩护的选择。我倾向于倾向于后者,因为它提高了可读性,并且代码的读取频率高于编写代码。

如果您希望更改行为,则需要通过修改其源代码来修改处理for(const QString& str : nameList){ out << str; } 的注释处理器的语义。 (或者如果还没有注释处理器,则编写注释处理器。如果没有注释处理器,则注释将不会被继承。)