【问题标题】:Recompile with -Xlint:unchecked for details重新编译 -Xlint:unchecked for details
【发布时间】:2015-09-03 22:29:56
【问题描述】:

在编译 java 程序时,我们得到“使用 -Xlint 重新编译:未检查详细信息”。 为什么会出现此错误?

【问题讨论】:

  • 请复制完整的堆栈跟踪。
  • 你尝试过按照它的建议做吗?

标签: java


【解决方案1】:

可能是因为您没有正确使用泛型。也许您将遗留代码与通用代码混合在一起。

这是来自the official trail on type erasure的报价:

注意:WarningDemo.java 使用未经检查或不安全的操作。
注意:使用 -Xlint 重新编译:unchecked for details.

当使用对原始类型进行操作的旧 API 时,可能会发生这种情况,如以下 WarningDemo 程序所示:

public class WarningDemo {
    public static void main(String[] args) {
        Box<Integer> bi;
        bi = createBox();
    }

    static Box createBox() {
        return new Box();
    }
}

我建议你听从建议,并在编译时添加-Xlint:unchecked 选项。这应该可以揭示代码的哪些部分有问题。

【讨论】:

  • 我没有在我的类中使用泛型,我使用集合编写了简单的 java 类。
  • 我的课堂上没有使用泛型”——这可能就是问题所在。您是否使用任何ListSet 或其他Collection?在这种情况下,您不应该使用它们的 原始类型
  • 导入 java.util.*;类 ListIteratorDemo { public static void main(String[] args) { LinkedList l = new LinkedList(); l.add("克里希纳"); l.add("bargavi"); l.add("venkata"); l.add("rama"); l.add("sesha"); l.add("adithya"); System.out.println(l); ListIterator ltr = l.listIterator(); while(ltr.hasNext()) { String s = (String)ltr.next(); if(s.equals("venkata")) { ltr.remove(); } System.out.println(l); } } }
  • 我使用 jenkins 构建,我该怎么做“我建议您按照建议进行,并在编译时添加 -Xlint:unchecked 选项。这应该会揭示代码的哪些部分有问题。”
  • 如何Recompile with -Xlint:deprecation for details.
【解决方案2】:

此选项启用/禁用特定警告。您的代码似乎产生了这些警告。如果您使用的是 IDE,也要注意它产生的警告。这可能很有帮助。

并尝试执行编译器为您提供的功能:只需使用此选项重新编译,看看会发生什么。

【讨论】:

  • 在 Android Studio 中编译时,我们应该将那些“-Xling:whatever-is-suggested”选项放在哪里?
【解决方案3】:

可能是因为你需要声明一个 List 对象,比如说(例如),而不省略'':

List<Integer> list = new ArrayList<Integer>();

我尝试在不使用 NetBeans 的情况下在堆栈中声明对象,而 NetBeans 编译我的代码时没有错误消息。也许,javac 编译器的情况有所不同。

【讨论】:

    【解决方案4】:

    无论何时编译包含java.util.*; 包的Java 文件,都必须使用-xlint 重新编译。

    另外,检查您的 jdk 版本(使用 java -version)。我相信它一定是旧的。安装新版本的 Java(如版本 7),您将不会收到警告。

    【讨论】:

      【解决方案5】:

      这可能是 jdk 版本不匹配造成的,不一定是旧 jdk 版本,但任何非预期版本都可能导致此问题。

      【讨论】:

        猜你喜欢
        • 2012-06-05
        • 2015-12-21
        • 2011-06-03
        • 1970-01-01
        • 2012-01-03
        • 1970-01-01
        • 2012-09-09
        • 2015-06-04
        • 1970-01-01
        相关资源
        最近更新 更多