我怎样才能抑制关于弃用API的javac警告?

当我编译时,javac输出:

Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details.` 

我想压制这个警告。 尝试-Xlint:没有一个似乎没有帮助。

从文档中我可以看出,你不能在命令行上执行它。

根据javac文档 ,-Xlint:none只会禁用“Java语言规范未授权”的警告。 看来,警告您使用已弃用的API是由语言规范pipe理的。

您最好的select是修复不推荐使用的API。 但是,一个选项是将@SuppressWarnings("deprecation")注释添加到使用弃用的API的类或方法。

两种可能的方式:

  1. 请勿使用弃用的API
  2. 使用@SuppressWarnings("deprecation")

对于谷歌search这个问题的其他人,像我这样偶然发现这个线程…

试试:-Xlint:-deprecation

它似乎在JDK 6上工作…不知道其他人。

在Java 6中,@Depreated注释和comiler标志都不会帮助你。 我唯一的解决scheme是在弃用的方法上使用@deprecated (small caps)标记来进行javadoc注释

 /** * @deprecated overriding deprecated method */ @Override public javax.xml.bind.Validator createValidator() throws JAXBException {...} 

(该示例来自JAXBContext派生的类。)

(我没有导入已弃用的Validator类,以避免导入语句中的警告。)

使用gradle时,您可以轻松configuration它:

 tasks.withType(JavaCompile) { options.deprecation = false } 

(用Gradle 2和Java 8testing)

如果它是一个核心的Java API,几乎肯定会有一个替代品可以做你想要的。 使用该额外参数运行javac,然后查看弃用方法的API并根据需要进行replace。

使用nowarn属性见下面

例如

 <javac srcdir="src" destdir="build/classes" source="1.6" target="1.6" debug="true" encoding="Cp1252" nowarn="on"> 

默认情况下nowarn属性closures

@SuppressWarnings("deprecation")不适合我,而是我用过

 @SuppressWarnings("unchecked")