-3

コードをコンパイルしようとすると、シンボルが見つからないというエラーが発生します。私はすべての標準的な回答をチェックしました。実装されたコンパレーターがあり、私が使用するものを含め、関数に正しいタイプを与えています。それで、私は何が欠けていますか?

コードは次のとおりです。

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 以降で実装する必要があります。

4

2 に答える 2

1

あなたが参照したリンクCollectionsはクラスのものです。いいえCollection

于 2015-06-30T21:45:08.993 に答える
1

sインターフェイスのヘルパー メソッドからを見逃しましCollectionsCollection:

Collections.sort
于 2015-06-30T21:43:16.617 に答える