java - 如何修复代码以删除 -Xlint :unchecked warning while compiling

标签 java generics compilation warnings

<分区>

Possible Duplicate:
How do I address unchecked cast warnings?

当我使用 -Xlint:unchecked 编译时,我的程序编译并正常工作,但我正在寻求帮助以消除此警告。任何帮助表示赞赏!谢谢

这是警告:

java: warning: [unchecked] unchecked cast
found   : E
required: java.lang.Comparable<E>

                            ^^^^

给出警告的代码是:

public boolean contains(E obj) {

    Node<E> curr = head;

        while (curr != null) {
                return true;
            }

            curr = curr.next;
        }

        return false;
    }

最佳答案

如果您假设类中的所有数据必须实现Comparable 接口(interface),那么您应该将其添加到类声明中,否则您会得到一个ClassCastException 在未实现此接口(interface)的类中使用此方法时。

public class SomeClass<E extends Comparable<E>> {

    public boolean contains(E obj) {
        Node<E> curr = head;
        while (curr != null) {
        if (obj.compareTo(curr.data) == 0) {
                return true;
            }
            curr = curr.next;
        }
        return false;
    }

    //the rest of your implementation...
}

关于java - 如何修复代码以删除 -Xlint :unchecked warning while compiling,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12812040/

相关文章:

c - 是否可以在C中只有头文件而没有源文件

Android ndk-build 选项用于删除符号表信息

c - 为什么此代码有 "EOF in inline file"错误,我该如何解决?

java - 动态设置测试注释

java - Jackson json 映射和驼峰键名称

templates - CLI/C++接口(interface)类,通用方法调用模板方法

Java Lambda 方法引用 - 需要清楚

java - 如何对 HashMap 中重复出现的键关联的值求和

Java加法、while循环和joptionpane

c# - 在 C# 中使用泛型时如何避免装箱/拆箱?