2016-04-13 11 views
0

ich eine Klasse geöffnet und ich schrieb:Fehler beim Instanziieren 'Queue'

private Queue<Player> players; 

und dann im Konstruktor:

this.players = new Queue<Players>(); 

aber es sagt, es ist ein Fehler:

cannot instantiate the type Queue<Player>

Ich erstellte eine Klasse mit Konstruktor und alles und ich importierte auch Queue.

Was könnte das Problem sein?

+5

'Queue' eine Schnittstelle oder eine abstrakte Klasse ist – 3kings

+4

' Queue 'ist Schnittstelle, so dass es nicht instanziiert werden kann. Sie sollten eine Instanz der Klasse * concrete * erstellen, zum Beispiel 'this.players = new LinkedList <>()' –

+3

Yes Queue ist eine Schnittstelle, die ArrayDeque, PriorityQueue usw. verwendet. –

Antwort

1

Ich nehme an, Sie verwenden java.util.Queue, es ist eine Schnittstelle. Sie benötigen eine konkrete Implementierung der Warteschlangenschnittstelle, um eine Instanz der Warteschlange zu erstellen.

Sie können eine der java.util.Queue-Implementierungen auswählen. Zum Beispiel

Queue<String> myQueue = new LinkedList<String>(); 
+1

Sie können den Diamant-Operator ab Java 7 verwenden automatische generische Inferenz. (zB. "Warteschlange myQ = new LinkedList <>();') – callyalater

Verwandte Themen