Erste Schritte List<> unbekannt??

Marek_MCITP

Mitglied
Hallo zusammen,

ich schreibe gerade diesen Code und das "List" ist unbekannt und kriege auch keine Verbesserungsvorschläge.
Was muss ich unternehmen, damit das nicht mehr rot unterstrichen wird?
Ich habe die Klasse Communication natürlich schon erstellt und würde gerne die Entity in Beziehung stellen:
Java:
private List<Communication> communication;

Also List wird rot unterstrichen mit der Aussage:
The type List is not generic; it cannot be parameterized with arguments <Communication>

Danke für Eure Hilfe
 

Marek_MCITP

Mitglied
Hallo. Danke für die schnelle Antwort.
Nein den Import habe ich nicht gesetzt. Wenn ich diesen setze ist er aber gänzlich unbekannt.
Muss ich was aus dem Internet herunterladen?
Falls ja wo muss ich nochmal den Proxy angeben? Habe in meiner VM zwar Internet aber Eclipse kommt irgendwie nicht raus. Liegt bestimmt am Proxy.
Danke
 

VfL_Freak

Top Contributor
Zuletzt bearbeitet:

Flown

Administrator
Mitarbeiter
Zeig mal deinen Code her.

Funktioniert das hier bei dir?
Java:
import java.util.Arrays;
import java.util.List;

public class Test {

  public static void main(String[] args) {
    List<String> test = Arrays.asList("Hello", "World", "!");
    System.out.println(test);
  }
}
 

Marek_MCITP

Mitglied
Java:
import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;

Das war der Grund. Dieser Ausdruck stand über den Import
Java:
import java.util.List;

deshalb hat es nicht funktioniert.
Wieso eigentlich?

Also mein Problem wurde gelöst.
Danke an Euch. Ich war noch nie in einem so schnellen Forum
 

X5-599

Top Contributor
Was bedeutet "gänzlich unbekannt"? Welche Fehlermeldung wird angezeigt wenn du den import auf "import java.util.List;" änderst?
 

X5-599

Top Contributor
Es gibt Probleme wenn Klassennamen identisch sind. Die imports dienen sowiso nur der Verschönerung des Quellcodes. Man käme meines Wissens auch ohne aus. Beispiel statt:
Java:
import java.util.List;

public class MeineKlasse
{
  private List<String> liste;
}

könntest du auch:
Java:
public class MeineKlasse
{
  java.util.List<String> liste;
}

schreiben. Das ist auch die (vermutlich) einzige Möglichkeit, solltest du z.B. die List Klassen aus dem java.util und java.awt Package brauchen. Entweder so:
Java:
import java.util.List;

public class MeineKlasse
{
  private List<String> liste;
  private java.awt.List awtListe;
}

oder ganz ohne imports:
Java:
public class MeineKlasse
{
  private java.util.List<String> liste;
  private java.awt.List awtListe;
}

Mit welchen imports du arbeiten willst ist dir überlassen.

Auch sollte man aufpassen wenn man bei imports mit der Wildcard(*) arbeitet. Wenn du z.B. mehrere Klassen aus dem java.awt Package brauchst und die nicht alle einzeln per import:
import java.awt.BorderLayout;
import java.awt.AWTException;

etc angeben willst, könntest du:

import java.awt.*;

schreiben. Das macht alle Klassen des java.awt Packages in deiner Klasse "bekannt" und du kannst wie gewohnt:

BorderLayout b = new BorderLayout();
AWTException e = new AWTException("Ein Fehler");

schreiben.
Wenn du dann aber die List Klasse aus dem util Package brauchst und wie gewohnt:
List<String> liste;
schreibst, bekommst du den Fehler präsentiert, dass die Klasse List nicht Generisch ist. Eben weil automatisch die Klasse List aus dem java.awt Package gemeint ist. Ich habe mir z.B. angewönt bei imports nie (*) zu verwenden. Das entscheidet aber jeder für sich selbst. Man muss halt bescheid wissen wie sich das (*) verhält...
 
Zuletzt bearbeitet:

Marek_MCITP

Mitglied
Vielen Dank für die guten und prompten Antworten.
Ich habe es verstanden.
Ich komme eigentlich aus der Citrix/App-V Welt. Möchte aber tiefer in Java einsteigen.
Ich studiere berufsbegleitend und z.Z. nehmen wir auch Java durch.

Ich möchte eine Inventarisierungs-"Software" schreiben, die komplett über Webbrowser zu bedienen ist. Diesen Link veröffentliche ich dann in der Citrix-Welt über App-V. Das ist der Plan.

Lieben Gruß
 

Ähnliche Java Themen

Neue Themen


Oben