我在库中获得了“警告:[未经检查]未经检查的转换”消息,其源代码我将与我的代码一起编译。由于我不想修改库源,有没有办法在Ant的javac
任务中禁用该特定警告?
答案 0 :(得分:3)
无法禁用unchecked
Xlint选项 ,至少不使用-Xlink:-unchecked
javac标记。
这似乎是在编译器的com.sun.tools.javac.comp.Check
类中强制执行的,请参阅jdk8-b40
标记this version的第127行(摘录如下)。
boolean verboseDeprecated = lint.isEnabled(LintCategory.DEPRECATION);
boolean verboseUnchecked = lint.isEnabled(LintCategory.UNCHECKED);
boolean verboseSunApi = lint.isEnabled(LintCategory.SUNAPI);
boolean enforceMandatoryWarnings = source.enforceMandatoryWarnings();
deprecationHandler = new MandatoryWarningHandler(log, verboseDeprecated,
enforceMandatoryWarnings, "deprecated", LintCategory.DEPRECATION);
uncheckedHandler = new MandatoryWarningHandler(log, verboseUnchecked,
enforceMandatoryWarnings, "unchecked", LintCategory.UNCHECKED);
sunApiHandler = new MandatoryWarningHandler(log, verboseSunApi,
enforceMandatoryWarnings, "sunapi", null);
答案 1 :(得分:2)
您应该尝试使用javac选项-Xlint:-name
,其中 name 是要禁用的警告的名称。可能的名称列表为here。所以我想在你的情况下,名称将是“未选中”。
在Ant脚本中,这看起来像:
<javac ...>
<compilerarg value="-Xlint:-unchecked"/>
...
</javac>
答案 2 :(得分:0)
试试这个!
<javac classpathref="project.class.path">
nowarn="true"
deprecation="false"
....
</javac>