Witam, chcę się zabrać za sortowanie lecz przy testowaniu komparatora wynika mi exception: Class Cast Exception (przykład wzięty z ksiązki algorytmy od podstaw, Harris Ross). Gdzieś coś przegapiłem tylko nie wiem gdzie, z góry dzięki za pomoc.
Klasa Testowa
package sortowanie;
import junit.framework.*;
public class ComparatorTest extends TestCase {
protected static final Object A="A";
protected static final Object B="B";
public void testLessThan()
{
assertTrue(NaturalComparator.INSTANCE.compare(A, B)<0);
}
public void testMoreThan()
{
assertTrue(NaturalComparator.INSTANCE.compare(B, A)>0);
}
public void testEqualTo() {
assertTrue(NaturalComparator.INSTANCE.compare(A, A) == 0);
}
}
public interface Comparable {
public int compareTo(Object other);
}
public interface Comparator {
public int compare(Object left, Object right) throws ClassCastException;
}
Komparator
public final class NaturalComparator implements Comparator {
/** jedyna, publicznie dostępna instancja komparatora */
public static final NaturalComparator INSTANCE = new NaturalComparator();
private NaturalComparator() {
}
public int compare(Object left, Object right) throws ClassCastException {
assert left != null : "nie określono lewego obiektu ";
assert right != null : "nie określono prawego obiektu ";
return ((Comparable) left).compareTo(right);
}
}