ソートするフィールドを選択できるように、カスタム クラスのコンパレータを実装しようとしています。私が作成した比較クラスの 1 つは、私が少しでも理解できないエラーを私に与えています。私の上司は金曜日に早く出発し、以下のコードで「Spectrum」オブジェクトの配列を並べ替えようとしたときに質問をすることができなかったので、あなたが見たものを自由に指摘してください:
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 にも同じエラーが表示されますが、冗長であるため省略されています。