Saját projekt egy telefonkönyv, amely segítségével BSTree<E>. Minden egyes csomópont a fa BTNode<E>. A fő osztály, cserélje E párral osztály, amely (String name, String number), amikor meghatározzák a csomópontokat.
Én a következő összehasonlító osztály összehasonlítani a 2 E típusok:
import java.util.Comparator;
public class BTNodeComparator<E> implements Comparator<E>
{
public int compare(E a, E b) throws ClassCastException
{
return ((Comparable<E>) a).compareTo(b);
}
}
és tudom használni azt BSTree<E>.
Most, amikor elindítja a programot és jön a komparátor, ez ad nekem a hibákat a komparátor mert most le két pár
Hogyan oldjam meg a problémát? Amit én szeretnék összehasonlítani a nevét a két párt?
Elnézést a rossz magyarázat. Az angol tudásom gyenge.
=========================
edit:
@Tim: kipróbálása után a megoldás ez ad nekem ezt a hibát:
java.lang.NullPointerException
at Pair.compareTo(Pair.java:36) // @ return name.compareTo(pair.getName());
at Pair.compareTo(Pair.java:2) // @ public class Pair implements Comparable<Pair>
at BTNodeComparator.compare(BTNodeComparator.java:24) // @ return (a.compareTo(b));
at BTNodeComparator.compare(BTNodeComparator.java:20) // @ public class BTNodeComparator<E extends Comparable<E>> implements Comparator<E>
at BSTree.search(BSTree.java:285)
at BSTree.insert(BSTree.java:300)
at PhoneBook.main(PhoneBook.java:25)
BTW, én decleared BTNodeComparator a BSTree az alábbiak szerint:
protected Comparator<E> c = new BTNodeComparator();
if (c.compare(target, cursor.getElement()) < 0) cursor = cursor.getLeft();













