Просто добавьте некоторые элементы в Queue
, например String
.
Затем вызовите метод offer
, давая в Integer
, который несовместим со строкой.
Этот фрагмент кода:
public static void main(String args[])
{
PriorityQueue test = new PriorityQueue();
test.add("test");
test.offer(new Integer(1));
}
производят бы эту ошибку:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at java.lang.Integer.compareTo(Integer.java:52)
at java.util.PriorityQueue.siftUpComparable(PriorityQueue.java:656)
at java.util.PriorityQueue.siftUp(PriorityQueue.java:647)
at java.util.PriorityQueue.offer(PriorityQueue.java:344)
at test.Test.main(Test.java:15)
В основном, будет сгенерировано исключение, если вы предлагаете объект, который не совместим с объектами уже в очередь.
Похоже, вы смешиваете какие объекты вы пытаетесь вставить в очередь приоритетов. Отправьте свой код, где вы это называете! – javajavajava
@BarbiePylon OP спрашивает, в каком случае будет выбрано исключение, ссылаясь на то, что сказано в документации. –
Ahh в порядке, в этом случае ответ @ Jean-FrançoisSavard при условии, выглядит хорошо! – javajavajava