【发布时间】:2021-10-05 16:03:24
【问题描述】:
public static void main(String[] args) {
// TODO code application logic here
Scanner input = new Scanner(System.in);
int sel;
PriorityQueue<Worker> userQueue = new PriorityQueue<>();
PriorityQueue<String> users = new PriorityQueue<>();
while(true)
{
System.out.print("1) Add job\n2) Run Jobs\n3) Clear Jobs\n4) Add User\n5) Print users\n0) Exit\n");
sel = getInteger(input);
if (sel == 0)
{
break;
}
else if (sel == 1)
{
System.out.print("1) Basic Job\n2) Repeating Job\n0) Cancel\n");
sel = getInteger(input);
if (sel == 1)
{
System.out.println("Enter job message");
String msg = input.nextLine();
msg = input.nextLine();
userQueue.offer(new Worker(msg)); }
// 我在 userQueue.offer(new Worker(msg)) 处遇到异常; //
Exception in thread "main" java.lang.ClassCastException: class cis265.Worker cannot be cast to class java.lang.Comparable (cis265.Worker is in module cis265_queue of loader 'app'; java.lang.Comparable is in module java.base of loader 'bootstrap')
at java.base/java.util.PriorityQueue.siftUpComparable(PriorityQueue.java:643)
at java.base/java.util.PriorityQueue.siftUp(PriorityQueue.java:639)
at java.base/java.util.PriorityQueue.offer(PriorityQueue.java:330)
at cis265_queue/cis265.Cis265_queue.main(Cis265_queue.java:63)
【问题讨论】:
-
请将您的代码显示为问题中的文本,如minimal reproducible example。
-
你还需要显示你得到的异常,并在代码中指出它发生的行。
标签: java priority-queue