我正在制作一个 Point2D.Float 类型的 TreeSet,并使用实现 Point2D 类型的 compare() 的自定义 Comparable 类创建它。但是,在 TreeSet 上调用“包含”时,我收到一个类转换错误:java.lang.ClassCastException: java.awt.geom.Point2D$Float cannot be cast to java.lang.Comparable
该集合是这样创建的:
private CoordinateComparator coordCompare;
public TreeSet<Point2D.Float> coordSet = new TreeSet<Point2D.Float>(coordCompare);
这是我的比较类:
public class CoordinateComparator implements Comparator<Point2D.Float> {
public CoordinateComparator() {}
@Override
public int compare(Point2D.Float p1, Point2D.Float p2) {
if (p1.getX() < p2.getX())
return -1;
if (p1.getX() > p2.getX())
return 1;
if (p1.getY() < p2.getY())
return -1;
if (p1.getY() > p2.getY())
return 1;
return 0;
}
}
关于出了什么问题的任何想法?我已经被困在这里几个小时试图调试它无济于事。谢谢。