"Kann den Typ nicht instanziieren ..."
Wenn ich versuche diesen code auszuführen:
import java.io.*;
import java.util.*;
public class TwoColor
{
public static void main(String[] args)
{
Queue<Edge> theQueue = new Queue<Edge>();
}
public class Edge
{
//u and v are the vertices that make up this edge.
private int u;
private int v;
//Constructor method
public Edge(int newu, int newv)
{
u = newu;
v = newv;
}
}
}
Bekomme ich diesen Fehler:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Kann nicht instanziiert werden der Typ Queue bei TwoColor.main(TwoColor.java:8)
Ich verstehe nicht, warum kann ich nicht die Klasse instanziieren... Es scheint mir Recht sein...
InformationsquelleAutor der Frage StickFigs | 2011-04-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
java.util.Queue
ist eine Schnittstelle, so dass Sie kann nicht instanziiert werden es direkt. Sie instanziieren können eine konkrete Unterklasse, wieLinkedList
:InformationsquelleAutor der Antwort Cameron Skinner
Warteschlange ist eine Schnittstelle, also können Sie nicht initiieren Sie es direkt. Initiieren Sie durch eine eigene Implementierung von Klassen.
Aus der Dokumentation alle bekannten implementierende Klassen:
Sie können jedes der oben genannten, basiert auf Ihrer Anforderung zu initiieren, ein Queue-Objekt.
InformationsquelleAutor der Antwort Harry Joy
Queue ist ein Schnittstelle nicht die Klasse.
InformationsquelleAutor der Antwort Andrew Lazarus
Sind Sie zu instanziieren versucht, eine Schnittstelle, die Sie benötigen, zu geben, die konkrete Klasse, die Sie verwenden möchten, D. H.
Queue<Edge> theQueue = new LinkedBlockingQueue<Edge>();
.InformationsquelleAutor der Antwort Jugal Shah
Können Sie
oder
Grund: die Warteschlange ist eine Schnittstelle. So können Sie instanziieren nur seine konkrete Unterklasse.
InformationsquelleAutor der Antwort Amit Anand