Я делаю TreeSet типа Point2D.Float, создавая его с помощью пользовательского класса Comparable, который реализует compare () типа Point2D.Тем не менее, при вызове «содержит» в TreeSet, я получаю ошибку classcast: 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;
}
}
Есть идеи, что происходит не так?Я застрял здесь в течение нескольких часов, пытаясь отладить его безрезультатно.Благодаря.