我创建了自己的“LinkedList”类,它可以接收用泛型指定的对象。
在那个类中,我想要一个sort(ComparatorObject)方法,该方法接受一个类实现了 Comparator 的对象。
原因是对于我的测试对象,特别是形状,我想看看我是否可以按用户选择的各种字段对它们进行排序,例如形状的面积、周长、类型等。
现在,我的比较器类之一是这样定义的:
public class Comparator_Area implements Comparator<Shape>{
@Override
public int compare(Shape shape1, Shape shape2) {
int valueToReturn = 0;
if(shape1.getArea() < shape2.getArea()){
valueToReturn = -1;
}
else if(shape1.getArea() < shape2.getArea()){
valueToReturn = 1;
}
return valueToReturn;
}
}
在我的 LinkedList 类中,我的排序方法是这样定义的(我不知道它是否正确,但这是我在查找如何执行此操作时发现的):
public void sort(Class<? extends Comparator<E>> comparator){
}
自然,我希望能够在 sort 方法中使用这样的东西:
comparator.compare(shape1, shape2);
但我不能使用“比较”,我真的不知道我应该如何完成这个。