2016-04-28 13 views
1

Mein Ziel ist es, eine Liste von Autos als ein Objekt zu haben, damit ich ein Auto von dieser Liste abrufen kann. Sowie bekommen Details der Autos. Kann mir jemand in die richtige Richtung zeigenHinzufügen und Abrufen von Objekten aus einer Liste

Was ich bisher gemacht habe.

  1. Erstellen Sie eine Klasse namens Car und haben Sie die Variablen CarNum, carName, carPlate;
  2. erzeugt Getter und Setter für die Variablen und eine toString als carName
  3. Erstellen Sie eine Klasse CarCollection genannt als

folgt.

public class CarCollection { 
     private List<CarItem> mCarList; 



     public void addVan(CarItem v) { 
      mCarList.add(v); 
     } 

     public List<CarItem> getCarList() { 
      return mCarList; 
     } 

Der folgende Test funktioniert nicht. Warum?

public class TestCarCollectionprocess { 

    public static void main(String[] args) { 

     CarItem car1 = new CarItem(); 
     car1.setmCarName("Pedro"); 
     car1.setmCarNum(1); 

     CarItem car2 = new CarItem(); 
     car2.setmCarName("Rene"); 
     car2.setmCarNum(2); 

     CarCollection carList = new CarCollection();   
     carList.addCar(car1); 
     carList.addCar(car2); 
     System.out.println(carList.getCarList()); 
    } 
} 
+1

Was funktioniert nicht genau? – Gendarme

+0

Bitte geben Sie an, was Sie in der Ausgabe erhalten haben. –

+0

Ich sehe keine addCar-Methode in Ihrer CarCollection-Klasse und ich sehe nicht, ob Sie die private Liste vollständig aufbauen. mCarList; –

Antwort

3

setzt Was ich aus dem Code sehen, sollten Sie NullPointerException in addVan Methode erhalten, da Sie nicht List initialisiert haben, so dass es wie folgt ändern:

private List<CarItem> mCarList = new ArrayList<>(); 
+1

Danke. Das war die Antwort, nach der ich gesucht habe! –

0

Sie versuchen, eine CarItem auf die mCarList der CarCollection hinzuzufügen, ohne jemals Instanziieren die Liste, so dass Sie eine NULL-Verweis Ausnahme erhalten werden sollen. In Ihrem carCollection Klasse einen Konstruktor erstellen, die

mCarList = new List<CarItem>(); 
+0

Liste ist Schnittstelle, so dass dies nicht funktioniert. –

+0

Nein, IList ist eine Schnittstelle, List ist eine Implementierung der Schnittstelle –

+1

Mist, ich habe das Tag nicht gelesen. Ich dachte C#, nicht Java. mein schlechter ... –

Verwandte Themen