Elemente einer (öffentlichen) ArrayList in einer anderen Klasse zu einer ArrayList dazu fügen.

eclipseworker

Bekanntes Mitglied
Ich habe also in meiner ersten Klasse K1 sowas stehen:
Java:
public ArrayList<objekt> myArrayList= new ArrayList<objekt>();
in der zweiten Klasse habe ich so ein Konstrukt:
Java:
private ArrayList<objekt> myArrayListK2= new ArrayList<objekt>();
for(objekt dazu : K1.myArrayList){
    myArrayListK2.add(dazu);
}

Nach Beendigung dieser foreach Schleife ist myArrayListK2 immer noch null. ???:L Warum??
 
Zuletzt bearbeitet:
Das kann viele Gründe haben:
Code:
K1.myArrayList
hier macht du nen statischen Zugriff auf die Liste, laut deinem Code ist sie aber nicht static?
Ist die Liste leer?
Wenn sie vielleicht doch nicht static ist, nutzt du vllt zwei verschiedene Instanzen der Klasse?
 
Das kann viele Gründe haben:
Code:
K1.myArrayList
hier macht du nen statischen Zugriff auf die Liste, laut deinem Code ist sie aber nicht static?
Ist die Liste leer?
Wenn sie vielleicht doch nicht static ist, nutzt du vllt zwei verschiedene Instanzen der Klasse?
Nein myArrayList ist nicht leer und ich verwende die richtige Instanz. Es könnte aber was daran sein mit dem statischen Zugriff auf eine nicht statische Liste, ich habe aber meinen Code in Klasse K1 ausgebessert
Java:
public static ArrayList<objekt> myArrayList= new ArrayList<objekt>();
und nach der Ausführung dieses Codes
Java:
private ArrayList<objekt> myArrayListK2= new ArrayList<objekt>();
for(objekt dazu : K1.myArrayList){
     myArrayListK2.add(dazu);
}
ist myArrayListK2 immer noch null.
 
Nein myArrayList ist nicht leer und ich verwende die richtige Instanz. Es könnte aber was daran sein mit dem statischen Zugriff auf eine nicht statische Liste
Dann hätte sich der Code gar nicht erst kompilieren lassen.

und nach der Ausführung dieses Codes
Java:
private ArrayList<objekt> myArrayListK2= new ArrayList<objekt>();
for(objekt dazu : K1.myArrayList){
     myArrayListK2.add(dazu);
}
ist myArrayListK2 immer noch null.
Kann überhaupt nicht sein, myArrayListK2 ist nie null, weil du die variable schon beim deklarieren instantiierst - und wenn im debugger nicht null steht sondern "objectreference", dann ist sie auch nicht null. Also bitte mal erklären, was du überhaupt meinst oder ein Beispielcode mit Problem posten, sonst bleibt das hier nur beim Rätselraten.
 
Lass dir doch mal jedes Element aus deiner ArrayList ausgeben:
Java:
for(objekt dazu : K1.myArrayList){
 myArrayListK2.add(dazu);
 System.out.println(dazu); // gibt natürlich nur "unsinn" aus, aber du siehst, dass das Objekt gefunden wurde.
}
 
Aus einem mir unbekannten Grund war myArrayList zwei mal vorhanden. Einmal Lokal beim erzeugen und einmal so, die Instanz Liste auf die mich bezogen habe wurde aber nie initialisiert. Ich habe das Problem so gelöst:
Java:
this.myArrayListK2=myArrayListK2;
Danke für alle Antworten! :toll:
 

Zurück
Oben