@SuppressWarnings("javadoc")的作用是什么?何时会出现冗余?
关于@SuppressWarnings("javadoc")的作用与冗余警告解析
1. 这个注解原本的作用
@SuppressWarnings("javadoc")是用来抑制Javadoc相关编译警告的。
很多人以为javadoc只是生成文档的工具,和编译没关系,但其实当你用javac编译时,如果开启了-Xlint:javadoc参数,编译器会调用javadoc的语法检查逻辑,把javadoc的不规范问题(比如类/方法缺少javadoc注释、@param标签和参数名不匹配、javadoc标签格式错误等)当成编译警告输出。这时候这个注解就能屏蔽这些特定的警告,让编译过程不再抛出这类提示。
2. 为什么IDE提示“冗余抑制”
出现这个警告通常有两种原因:
- 你的编译配置(或者IDE默认配置)没有开启
-Xlint:javadoc检查,所以根本不会触发javadoc相关的编译警告,注解自然就没用了; - 你的代码已经符合javadoc规范,没有触发任何需要抑制的警告,注解就成了多余的声明。
另外,随着IDE和Java工具链的更新,现在的IDE能更智能地检测当前是否存在需要抑制的警告,一旦发现注解没有实际作用,就会提示冗余。
3. javadoc怎么会影响编译?
正常情况下单独运行javadoc命令生成文档,确实不会影响编译。但如果编译时加上了-Xlint:javadoc参数,javac会把javadoc的检查整合到编译流程中,将javadoc的不规范问题作为编译警告输出。这时候javadoc的问题就会和其他编译警告一样,出现在编译结果里,这也是这个注解存在的意义——专门屏蔽这类特定警告。
建议
既然IDE提示冗余,说明当前没有需要抑制的javadoc警告,直接删掉这些注解即可。如果之后遇到javadoc相关的编译警告,再针对性地添加注解(或者更建议直接修正javadoc的不规范问题)。
内容的提问来源于stack exchange,提问作者peer
相关产品推荐
相关产品推荐

