我怎样才能抑制关于弃用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的类或方法。
两种可能的方式:
- 请勿使用弃用的API
- 使用
@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")