抑制 javac 警告“...是内部专有 API,可能会在将来的版本中被删除”

2022-08-31 16:39:22

当我在使用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”?

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


答案 1

无法抑制此特定警告。至少不是官方的。

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

如果您特别坚定,则可以使用高度未记录的javac -XDignore.symbol.file标志,该标志将针对Sun的内部而不是面向公众的符号文件编译您的程序。 不会生成此警告。rt.jarct.symrt.jar


答案 2

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

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

推荐