0

カスタムの「ヒープ」クラスがあります。

public class Heap<T extends Comparable<T>>
{
    ArrayList<T> heapList;


    public Heap()
    {
        heapList = new ArrayList<T>();

    }

およびカスタム「プロセス」クラス:

public class Process {
    private int processID, timeUnitsRequired, priority, timeOfArrival;

    public Process(int processID, int timeUnitsRequired, int priority, int timeOfArrival) {
        this.processID = processID;
        this.timeUnitsRequired = timeUnitsRequired;
        this.priority = priority;
        this.timeOfArrival = timeOfArrival;
    }

しかし、プロセスの新しいヒープを作成しようとするとHeap<Process> processHeap = new Heap<Process>();、次のようなエラーが発生します。

境界の不一致: タイプ Process は、タイプ Heap の境界パラメーター > の有効な代替ではありません

どうしてこれなの?私はそれを理解できないようです。

4

2 に答える 2

2

プロセスは Comparable を実装していません

于 2012-11-25T23:34:44.717 に答える
1

プロセス オブジェクトは、Comparableインターフェイスを実装する必要があります。

実装例 優先順位による比較

public class Process implements Comparable<Process>{

    @Override
    public int compareTo(Object o) {
        Process p2 = (Process) o;
        if(this.priority > p2.priority){
          return 1;
        }else if(this.priority < p2.priority){
          return -1;
        }
        return 0;
    }
}

同等の API ドキュメント

于 2012-11-25T23:37:15.990 に答える