Using checkedQueue:
package com.logicbig.example.collections;
import java.util.Collections;
import java.util.Comparator;
import java.util.PriorityQueue;
import java.util.Queue;
public class CheckedQueueExample2 {
public static void main(String... args) {
Comparator comparator = (o1, o2) -> 1;
Queue<Integer> queue = new PriorityQueue<>(comparator);
queue = Collections.checkedQueue(queue, Integer.class);
queue.offer(1);
queue.offer(2);
System.out.println(queue);
Queue queue2 = queue;
queue2.offer("three");
System.out.println(queue2);
}
}
Output
Caused by: java.lang.ClassCastException: Attempt to insert class java.lang.String element into collection with element type class java.lang.Integer
at java.util.Collections$CheckedCollection.typeCheck(Collections.java:3037)
at java.util.Collections$CheckedQueue.offer(Collections.java:3187)
at com.logicbig.example.collections.CheckedQueueExample2.main(CheckedQueueExample2.java:25)
... 6 more