我遇到了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无法解析”错误。 我对这里的类型参数很困惑,有人可以给我一些提示吗?
答案 0 :(得分:3)
使用
class MyComparator implements Comparator<ListNode> {
而不是
class MyComparator<ListNode> implements Comparator<ListNode> {