如何解决“类型参数ListNode隐藏类型ListNode”?

时间:2013-04-20 11:02:37

标签: java type-parameter

我遇到了java类型参数的一些问题。这是代码。我有一个类ListNode,以及一个实现Comparator接口的MyComparator类。

class ListNode {
    int val;
    ListNode next;
}

class MyComparator<ListNode> implements Comparator<ListNode> {
    @Override
    public int compare(ListNode n1, ListNode n2) {
        if (n1.val < n2.val)
            return -1;
        else if(n1.val == n2.val)
            return 0;
        else
            return 1;
    }
}

然而,编译器在MyComparator的声明行中报告“类型参数ListNode隐藏类型ListNode”,并且在compare()的重写实现中导致“val无法解析”错误。 我对这里的类型参数很困惑,有人可以给我一些提示吗?

1 个答案:

答案 0 :(得分:3)

使用

class MyComparator implements Comparator<ListNode> {

而不是

class MyComparator<ListNode> implements Comparator<ListNode> {