我试图实现一个自定义类的比较器,所以我可以选择排序的字段。我做的一个比较类是给我一个我不明白的错误。请随时指出您所看到的任何内容,因为我的老板在星期五早些时候离开,并且在我开始尝试对以下代码中的“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