0

我遇到了一些 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 无法解析”错误。我对这里的类型参数感到很困惑,有人可以给我一些提示吗?

4

1 回答 1

3

利用

class MyComparator implements Comparator<ListNode> {

代替

class MyComparator<ListNode> implements Comparator<ListNode> {
于 2013-04-20T11:09:06.067 回答