4

My Comparator は現在 に入力されていJobSetます。なぜそうなったのかはわかり<captureません-これまでに見たことがありません。誰かがここで何が起こっているのかを明らかにできますか?

コンパレーターは…

public class JobSetComparator implements Comparator<JobSet> {
    @Override
    public int compare(JobSet o1, JobSet o2) {
        return Integer.compare(o1.getHighestPriority().getValue(), o2.getHighestPriority().getValue());
    }
}

待ち行列...

protected JobSetQueue queue = new JobSetQueue(0, new JobSetComparator());

public JobSetQueue getQueue() {
    return queue;
}

public JobSet[] getPrioritizedQueue() {
    return Arrays.sort(queue.toArray(), queue.comparator());
} 

ここに画像の説明を入力

4

1 に答える 1

8

queue.toArray()を返しますがObject[]、提供されたものでComparatorは処理できません。

toArray()期待されるタイプの配列を取る、 代替を使用する必要があります。

JobSet[] queueArray = queue.toArray(new JobSet[]{});
Arrays.sort(queueArray, queue.comparator());
return queueArray;
于 2013-05-17T22:00:16.320 に答える