525 Stimmen

Wie initialisiert man ein List<String>-Objekt in Java?

Ich kann eine Liste wie im folgenden Code nicht initialisieren:

List<String> supplierNames = new List<String>();
supplierNames.add("sup1");
supplierNames.add("sup2");
supplierNames.add("sup3");
System.out.println(supplierNames.get(1));

Ich habe folgenden Fehler:

Der Typ kann nicht instanziiert werden List<String>

Wie kann ich instanziieren List<String> ?

3voto

voucher_wolves Punkte 565

Nur für den Fall, dass diese Frage noch jemandem im Kopf herumschwirrt. Weil, ich sehe ein oder zwei neue Benutzer wieder die gleiche Frage stellen und jeder sagt dann, Nein, das kannst du nicht tun, liebe Prudence Abgesehen von den Antworten, die hier gegeben wurden, möchte ich zusätzliche Informationen geben - Ja, das können Sie tatsächlich tun, Liste list = new List(); Allerdings um den Preis, dass man Implementierungen für alle Methoden der Schnittstellen schreiben muss. Das Konzept ist nicht einfach List list = new List(); sondern

List<Integer> list = new List<Integer>(){

        @Override
        public int size() {
            // TODO Auto-generated method stub
            return 0;
        }

        @Override
        public boolean isEmpty() {
            // TODO Auto-generated method stub
            return false;
        }

        @Override
        public boolean contains(Object o) {
            // TODO Auto-generated method stub
            return false;
        }

..... und so weiter (Kann nicht alle Methoden schreiben.)

Dies ist ein Beispiel für Anonyme Klasse . Es ist richtig, wenn jemand sagt, Nein, Sie können eine Schnittstelle nicht instanziieren, und das ist richtig. Aber man kann nie sagen, Sie können nicht schreiben List list = new List(); aber offensichtlich können Sie das tun, und das ist eine schwierige Aussage die Sie nicht tun können .

3voto

Programmer AHN Punkte 51

Anstelle von :

List<String> supplierNames = new List<String>();

Schreiben Sie dies, wenn Sie das neueste JDK verwenden:

 List<String> supplierNames = new ArrayList<>();

Das ist die richtige Art, eine Liste zu initialisieren.

0voto

fedor.belov Punkte 20913

Wir haben Sojus - 1 Problem zu vereinfachen: wie konvertiert man X à Y (z.B.. String à Integer ). Das Konstruieren eines Objekts ist auch eine Art der Konvertierung, so dass es eine einfache Funktion zum Konstruieren gibt Map , List , Set :

import io.thedocs.soyuz.to;

List<String> names = to.list("John", "Fedor");

Bitte überprüfen Sie es - es hat eine Menge anderer nützlicher Funktionen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X