我試圖實現一個自定義類的比較器,所以我可以選擇排序的字段。我做的一個比較類是給我一個我不明白的錯誤。請隨時指出您所看到的任何內容,因爲我的老闆在星期五早些時候離開,並且在我開始嘗試對以下代碼中的「Spectrum」對象進行排序時,我沒有問他問題:Java比較器類型變量問題?
import java.io.*;
import java.util.*;
public class scanComparator<Spectrum> implements Comparator<Spectrum> {
public int compare(Spectrum o1, Spectrum o2){
int s1 = o1.getScanNumber();
int s2 = o2.getScanNumber();
int eval = s2 - s1;
return eval;
}
}
這是錯誤(從jGrasp):
scanComparator.java:7: error: cannot find symbol
int s2 = o2.getScanNumber();
^
symbol: method getScanNumber()
location: variable o2 of type Spectrum
where Spectrum is a type-variable:
Spectrum extends Object declared in class scanComparator
getScanNumber()是公開的,不要錯過拼寫。我從Spectrum類複製粘貼方法名稱。給出了o1的同樣的錯誤,但是因爲冗餘而忽略了。
這似乎是最可能的爆炸,但奇怪的是,它不會指出o1相同。 – 2012-07-15 21:31:29
'getScanNumber()'是公共的嗎? – Starkey 2012-07-15 21:33:02
抱歉,應該指定這些點生病編輯... – user1487166 2012-07-15 21:39:09