この質問は、ジェネリックと Comparable および Comparator インターフェイスの使用を扱います。
クラスチョコレートがあります:
public class Chocolate implements Comparable<Chocolate> {
public int compareTo(Chocolate c) {
if (this.getValue() > c.getValue()) {
return 1;
} else if (this.getValue() < c.getValue()) {
return -1;
} else {
return 0;
}
}
}
とクラスのペア
public abstract class Pair<E extends Comparable<E>, T extends Comparable<T>>
implements Comparable<Pair<E, T>> {
public int compareTo(Pair<E, T> p) {
if (this.first.compareTo(p.first) > 0) {
return 1;
} else if (this.first.compareTo(p.first) < 0) {
return -1;
} else {
if (this.second.compareTo(p.second) > 0) {
return 1;
} else if (this.second.compareTo(p.second) < 0) {
return -1;
}
}
return 0;
}
}
そして、main メソッドを持つ別のクラス Sorter
public class SortingClient {
public static void main(String[] args){
Pair<Chocolate, Chocolate>[] pairs = (Pair<Chocolate, Chocolate>[]) new Pair<?,?>[numPairs];
Comparator<Pair<Chocolate, Chocolate>> interfaceChocolate = new Comparator<Pair<Chocolate, Chocolate>>(){
public int compare(Pair<Chocolate,Chocolate> c1, Pair<Chocolate,Chocolate> c2){
if (c1.compareTo(c2) > 0){
return 1;
}
else if (c1.compareTo(c2) < 0){
return -1;
}
else {
return 0;
}
}
} * Error here*
}
最後から 2 行目に「構文エラーです。LocalVariableDeclarationStatement を完了するには ";" を挿入してください」というエラーが表示されます。このエラーの意味と修正方法を教えてください。