使用-Xlint重新编译:取消选中以获取详细信息

时间:2011-06-21 08:06:28

标签: java

在编译java程序时,我们得到“使用-Xlint重新编译:未选中以获取详细信息”。 为什么我们收到此错误?

5 个答案:

答案 0 :(得分:4)

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

以下是the official trail on type erasure的引用:

Note: WarningDemo.java uses unchecked or unsafe operations.
Note: Recompile with -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选项。这应该揭示代码的哪些部分是有问题的。

答案 1 :(得分:3)

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

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

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

每当您编译包含java.util.*;包的Java文件时,都必须使用-xlint重新编译它。

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

答案 4 :(得分:0)

这可能是由于jdk版本不匹配造成的,不一定是旧的jdk版本,但是除了预期之外的任何版本都可能导致这种情况。