微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

哪个是x和m的认修饰符
public @interface Anno {
    int m() default x;
    int x = 10;
}

我想上面的代码相当于:

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

修饰符public和public 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

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

解决方法

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

Unless explicitly modified herein,all of the rules that apply to normal interface declarations apply to annotation type declarations.

所以它基本上表现得像普通的接口,其中public和abstract是冗余的,所有字段都是隐式静态和最终的.

原文地址:https://www.jb51.cc/java/129446.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐