禁止 javac 警告“...是内部专有 API,可能会在未来的版本中删除”

新手上路,请多包涵

当我使用 JDK 1.7.0 在 OS X 上编译 Spring JDBC 源代码时,我收到以下警告:

 warning: CachedRowSetImpl is internal proprietary API and may be removed in a future release

如何在编译期间抑制警告消息?

我已经知道并使用 Java 的 @SuppressWarning 注释。我正在寻找它的具体用途来抑制我所描述的警告。

我的问题具体是,在这行代码中:

 @SuppressWarnings("valuegoeshere")

“valuegoeshere”应该用什么代替?

编辑:人们,我知道最好避免导致警告的代码。通常这就是我的方法。但是我在这里编译第三方代码,我不想重写。我只想添加正确的注释来抑制警告,这样我实际上可以做些什么的警告就不会被掩埋。

原文由 Steve McLeod 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2k
2 个回答

无法抑制 此特定警告。至少不是正式的。

关于专有 API 的警告意味着您不应使用导致警告的 API。 Sun 不支持此类 API,警告将无法抑制。

如果你特别确定,你可以使用高度未记录的 javac -XDignore.symbol.file 标志,它将根据 Sun 的内部编译你的程序 rt.jar 而不是面向公众的符号文件 ct.symrt.jar 不会产生此警告。

原文由 John Kugelman 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您使用的是 Maven,您可能有兴趣将以下内容添加到您的 pom.xml 文件中:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <compilerArgument>-XDignore.symbol.file</compilerArgument>
    </configuration>
</plugin>

原文由 Brandon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题