通用方法中的比较器解决方案

时间:2013-11-06 15:00:33

标签: java list testing junit testcase

编辑:

我将比较器类编辑为“Integer Comparator class”,如前所述。

import java.util.Comparator;

public class IntegerComparator implements Comparator<Integer> {

public int compare(Integer o1, Integer o2) {
    if(o1>o2){
        return -1;
        }
        else if(o1<o2){
            return 1;
        }
    return 0;
  }
}

编辑2:比较器问题解决了!看看上面。

2 个答案:

答案 0 :(得分:1)

这是你的问题:

import java.util.Comparator;

public class Comparator<T> implements Comparator<? super T>

Comparator的班级文件中,单词Comparator表示自己,而不是您导入的java.util.Comparator。所以,你宣布一个实现自己的类,这显然是非法的。

最好的方法,恕我直言,以防止任何未来的混乱是重命名你的班级:

import java.util.Comparator;

/* You can probably come up with a better name than this... */
public class MyComparator<T> implements Comparator<? super T>

或者,如果您真的想继续致电课程Comparator,只需让它实现完全限定的java.util.Comparator

public class Comparator<T> implements java.util.Comparator<? super T>

答案 1 :(得分:1)

Comparator无法实现自身。更改具体类的名称。

IntegerComparator implements Comparator<Integer>