我在与我的代码一起编译其源代码的库中收到“警告:[未检查的]未检查的转换”消息。由于我不想修改库源,因此有没有办法在Ant的javac任务中禁用该特定警告?

最佳答案

不能禁用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);

10-05 22:11