当我尝试在我的 Java 类中向 PriorityQueue 添加多个元素时,会引发以下异常:
java.lang.ClassCastException
添加以下消息“事件不能转换为 java.lang.Comparable
当我尝试将两个 Event 对象添加到优先级队列时,我得到了这个表达式。这是我初始化优先级队列等的方法。也许我的构造有错误,因为这是我第一次使用它:
//the instance field
private PriorityQueue<Event> queue;
//Then in the constructor
queue = new PriorityQueue<Event>();
我只是在 main 方法中对其进行测试,但这是我收到上述错误的时候:
public static void main(String[] args) {
SimEngine engine = new SimEngine();
Event event1 = new Event();
Event event2 = new Event();
engine.getQueue().offer(event1);
engine.getQueue().offer(event2);
System.out.println("Queue size" + engine.queue.size());
}
注意:在尝试添加到队列时,我尝试同时调用 add 和 offer。我犯了同样的错误。
以上所有代码都在我的 SimEngine 类中。我知道队列需要知道如何对这些元素进行排序,但我认为如果您不指定任何优先级,那么它会自然地对它们进行排序吗?有人可以告诉我我在这里做错了什么谢谢。