哪些是Java注释中字段和方法的默认修饰符?

时间:2015-04-24 14:27:26

标签: java annotations access-modifiers

xm的默认修饰符
public @interface Anno {
    int m() default x;
    int x = 10;
}

我认为上面的代码相当于:

public @interface Anno {
    public int m() default x;
    public static final int x = 10;
}

修饰符publicpublic static final是多余的,但我没有找到官方解释。

我在这看: https://docs.oracle.com/javase/8/docs/technotes/guides/language/annotations.html https://docs.oracle.com/javase/tutorial/java/annotations/index.html http://www.vogella.com/tutorials/JavaAnnotations/article.html

是否有关于这些修饰符的文档?或者有人可以提供“正式”解释吗?

1 个答案:

答案 0 :(得分:5)

是的,我相信你是对的 - 我发现支持这一点的一点文件是JLS 9.6

  

除非在此明确修改,否则适用于普通接口声明的所有规则都适用于注释类型声明。

所以它基本上表现得像普通界面,其中publicabstract是多余的,所有字段都是隐式静态和最终的。