我试图为自定义类实现比较器,以便我可以选择要排序的字段。我做的比较器类之一给了我一个我一点也不理解的错误。随意指出你看到的任何东西,因为我的老板周五早些时候离开了,一旦我开始尝试对下面代码中的“光谱”对象数组进行排序,我就没有机会问他问题:
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 给出了相同的错误,但由于其冗余而被省略。