我的比较器目前已输入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());
}
答案 0 :(得分:8)
queue.toArray()
会返回Object[]
,您提供的Comparator
无法处理。
您需要使用备用toArray()
,它采用预期类型的数组:
JobSet[] queueArray = queue.toArray(new JobSet[]{});
Arrays.sort(queueArray, queue.comparator());
return queueArray;