コードをコンパイルしようとすると、シンボルが見つからないというエラーが発生します。私はすべての標準的な回答をチェックしました。実装されたコンパレーターがあり、私が使用するものを含め、関数に正しいタイプを与えています。それで、私は何が欠けていますか?
コードは次のとおりです。
import java.util.*;
class Planner implements MinSpanTree {
public List<Road> findCheapConversionPlan(List<Junction> junctions, List<Road> roads){
Collection.sort(roads);
return roads;
}
}
道路クラスには次のものが含まれます。
class Road implements Comparable<Road> {
@Override
public int compareTo(Road other){
double diff=this.weight-other.getWeight();
if (diff == 0) return 0;
if (diff > 0) return 1;
return -1;
}
public int compare(Road x, Road y){
double diff=x.getWeight()-y.getWeight();
if (diff == 0) return 0;
if (diff > 0) return 1;
return -1;
}
}
Planner.java クラスをコンパイルしようとするたびに、同じエラーが発生します。
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Planner.java:11: error: cannot find symbol
Collection.sort(roads);
^
symbol: method sort(List<Road>)
location: interface Collection
1 error
私の javac バージョンは javac 1.7.0_79 です。Oracle docs Collection.sortによると、少なくとも 1.6 以降で実装する必要があります。