A Queue
to interfejs, co oznacza, że nie można Queue
bezpośrednio utworzyć .
Najlepszym rozwiązaniem jest zbudowanie od klasy, która już implementuje Queue
interfejs, 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) {
...
};
...
};