A Queueto interfejs, co oznacza, że nie można Queuebezpośrednio utworzyć .
Najlepszym rozwiązaniem jest zbudowanie od klasy, która już implementuje Queueinterfejs, jak jeden z następujących elementów: AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, lub SynchronousQueue.
Alternatywą jest napisanie własnej klasy, która implementuje niezbędny interfejs Queue. Nie jest to potrzebne, z wyjątkiem tych rzadkich przypadków, w których chcesz zrobić coś specjalnego, zapewniając reszcie programu rozszerzenie Queue.
public class MyQueue<T extends Tree> implements Queue<T> {
public T element() {
... your code to return an element goes here ...
}
public boolean offer(T element) {
... your code to accept a submission offer goes here ...
}
... etc ...
}
Jeszcze mniej używaną alternatywą jest skonstruowanie anonimowej klasy, która implementuje Queue. Prawdopodobnie nie chcesz tego robić, ale jest to wymienione jako opcja ze względu na objęcie wszystkich podstaw.
new Queue<Tree>() {
public Tree element() {
...
};
public boolean offer(Tree element) {
...
};
...
};