我从javadoc看到@SuppressWarnings注释适用于
TYPE,FIELD,METHOD,PARAMETER,CONSTRUCTOR,LOCAL_VARIABLE
目标。为什么它也不适用于PACKAGE
?
我有一些生成的代码,其中包含一些原始类型警告。我希望能够为生成的类添加package-info.java
文件(在一个单独的物理目录中但是相同的java包),它告诉eclipse忽略从包中生成的类发出的任何原始类型警告。 / p>
为什么不支持?是否有另一种方法可以抑制整个包装中的警告?
答案 0 :(得分:8)
在旧版错误报告(状态 - 已关闭,无法修复)的响应中解释了不允许在包级别禁止警告的原因:Allow SuppressWarnings to be specified at the package level。
警告实际上表明了潜在的问题 生成的代码。
目前,SuppressWarnings具有理想的属性 只影响词汇嵌套代码。这意味着你 可以立即查看是否可以抑制警告 您正在阅读的代码。
此提案违反此属性以解决不常见问题 在大多数情况下可以解决的问题。
该回复中还提出了一些解决方法。
使用-source 1.4和-target 5自行编译生成的代码。
- 醇>
请求使用suppresswarnings的javacc的更新版本 或者不生成导致警告的代码。
我认为第一个建议,将生成的代码放在自己的项目中,应该适合你。第二个建议看起来更像是错误报告中的问题。我不知道你是否使用javacc。
答案 1 :(得分:1)
好问题。可能这将在未来由Oracle修复。
但现在我可以建议你以下。将所有生成的代码放入单独的项目。 BTW这是常见的做法。然后配置此项目以耐心警告。例如,在eclipse中,您可以打开项目属性/ Java编译器/错误/警告,选择“启用项目特定设置”并禁用所有警告。