Projem kullanan bir Rehber olan BSTree<E>. Ağacın her düğümdür BTNode<E>. Ana sınıfı, ben sahip Çifti sınıf ile E yerine (String name, String number)I düğümleri tanımlamak,.
Ben 2 E türleri arasında karşılaştırma aşağıdaki karşılaştırma sınıf var:
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);
}
}
ve ben bunu kullanmak BSTree<E>.
Ben programı çalıştırın ve Karşılaştırıcıya geldiğinde artık iki Çiftler arasındaki karşılaştırır çünkü Şimdi, bu karşılaştırıcısında bana hataları veriyor
Bu sorunu nasıl çözebiliriz? İstediğim iki çift isimleri arasında karşılaştırmaktır?
benim kötü açıklama için üzgünüm. İngilizcem zayıf.
=========================
Düzenle:
@Tim: Çözümünüzü denedikten sonra bana bu hata veriyor:
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)
aşağıdaki gibi BTW, BSTree içinde BTNodeComparator decleared:
protected Comparator<E> c = new BTNodeComparator();
if (c.compare(target, cursor.getElement()) < 0) cursor = cursor.getLeft();













