4

我的比较器当前键入到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()返回 a Object[],您提供的Comparator无法处理。

您将需要使用 alternate toArray(),它需要一个预期类型的​​数组:

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