我有優先級隊列和我的比較器泛型類型的問題,因爲我不知道如何重新鍵入。泛型類型和自己的比較器
當我調用比較(IRecord t,IRecord t1)方法時,它需要IRecord對象,但我需要比較泛型類型。
Class AbstrPriorQueue必須是泛型。
有與對象IRecord工作的比較:
public class MyComparator implements Comparator<IZaznam> {
@Override
public int compare(IRecord t, IRecord t1) {
if (t.getPriority() < t1.getPriority()) {
return -1;
} else if (t.getPriority() > t1.getPriority()) {
return 1;
} else {
return 0;
}
}
}
這是我的縮短修道院隊列。我在構造函數中給出了比較器。 IAbstrPriorQueue只是接口。
public class AbstrPriorQueue<T> implements IAbstrPriorQueue<T> {
// comparator
private MyComparator myComparator;
public AbstrPriorQueue(MyComparator myComparator) {
this.myComparator = myComparator;
}
@Override
public void insert(T data) {
T temp = list.getLast();
// there is a error (no suitable method found for compare(T,T))
if (myComparator.compare(data, temp) <= 0) {
// ....
}
}
}
您知道嗎我能做些什麼?
你會通過搭「的所有英語」代碼(僅僅是因爲這有助於吸引更多的觀衆)開始。 – GhostCat