Von einer Klasse auf eine Liste einer anderen Klasse zugreifen

S

s.g.

Gast
Hallo,

Wie kann ich von der Klasse3 auf die public Liste der Klasse2 zurückgreifen und die Inhalte dieser Liste vergleichen.
Die Liste ist ja public, somit von außen erreichbar. Alle Klassen sind in dem gleichen Package. Da die Liste auch mit Werten gefüllt ist, warum kriege ich ein NullPointerException? Rufe ich die Liste falsch auf bzw. an einer falschen Stelle?
Wo ist mein Fehler?


meine Ausgangsbasis:

Java:
// die Methode2 aus Klasse2 soll angestossen werden, was auch passiert 
public Klasse1  
{
       Klasse2 klasse2 = new Klasse2();
       for(...)
       {
              methode1()
              {
                     klasse2.methode2(parameter1, parameter2);
              }
       }       
}

//In dieser Klasse wird die list mit String-Werten gefüllt. 
//über System.out.println(list) kann ich die liste auch mit den Werten ausgeben
public Klasse2
{
       public List<String> liste = new ArrayList<String>();
       public String variable1;

       public void methode2(String param1, String param2)
       {
              for(...)
              {
                     variable1 = ...
                     list.add(variable1);
              }
       }
}

// auf die Liste aus Klasse2 zurückgreifen und die Listen-Inhalte vergleichen. 
//Funktioniert leider nicht. Bei der for-schleife bekomme ich ein NullPointerException. 
public Klasse3
{
       Klasse1 klasse1 = new Klasse1();
       Klasse2 klasse2 = new Klasse2();
       String name;

       klasse1.methode1(); // hier wird die methode1 angestossen, damit die methode2 aus der Klasse2 die entsprechenden Werte erhält

       methode3()
       {
              for(...)
              {
                     name = irgendetwas.getName();
                     for(String test : klasse2.list) // ich möchte über alle Elementer der Liste, die in methode2 der Klasse2 gefüllt wurde iterieren. Aber ich bekomme Als Fehlermeldung "NullPointerException". Warum? 
                     {
                            if(name.equals(test)
                                   System.out.println("Yuhuu es funktioniert");
                     }
              }
       }
}
 

Wrakas

Mitglied
Du solltest die Liste lieber privat halten und eine getter Methode schreiben, wobei die NullPointer exception gerade bei einer List auf eine falsche Verwendung der Liste hindeutet.
Das kann ich aber nur mit diesen Codebroken nicht sehen.

Schreib mal in deine For Schleife direkt nach Aufruf der Liste eine Ausgabe, dann siehst du ob er die Liste verwendet und nur zu lange itteriert, oder ob er sie garnicht verwenden kann.
 
Zuletzt bearbeitet:
S

s.g.

Gast
In der Zeile 46 tritt ein NPE auf.

Irgendwie kann ich mit klasse2.list nicht auf die gewünschte Liste zurückgreifen.

Ich werde eine getter-Methode entsprechend bauen.
 
G

Gonzo17

Gast
Wenn du es so machst, wie dort oben angedeutet und Klasse3 quasi der Anfang ist, dass liegt das Problem darin, dass du in Klasse1 eine andere Instanz von Klasse2 verwendest als in Klasse3. Somit kann die Liste nicht gefüllt sein. Wieso genau eine NPE dort auftritt kannst du ja erforschen, aber das sollte wohl der Fehler sein. Eine Möglichkeit wäre, das Objekt von Klasse2, das in Klasse3 erzeugt wird, an Klasse1 zu übergeben.
 
S

s.g.

Gast
Ich habe jetzt in der Klasse2 die Liste als private deklariert und greife über eine getter-Methode auf die Liste zurück.

Jedoch verstehe ich nicht, wo das Problem liegt:
Mit Klasse3 rufe ich die methode1 auf. Diese wiederruf ruft die methode2 auf, die Liste wird gefüllt. Den Inhalt kann ich auch sehen.
Erst dann versuche ich dort die Liste zu holen.

Wie kann ich das Objekt von Klasse2, das in Klasse3 erzeugt wird, an die Klasse1 übergeben?
 

Wrakas

Mitglied
Du hast 2 mal die klasse2 deklariert.

Kannst du mal den ausführbaren code einstellen, dann kann ich das raten aufhören und wirklich nach dem Fehler suchen.
 
G

Gonzo17

Gast
Als Parameter im Konstruktor. Wenn du nicht weißt, wie das mit Konstruktoren funktioniert, solltest du dir das vielleicht erstmal durchlesen. Auf die Schnelle: der Konstruktor erstellt dir eine Instanz der Klasse, im Konstruktor kannst du dann auch noch beliebigen Code platzieren, beispielsweise initialisiert man dort verschiedene Variablen der Klasse. Und dann kann man eben auch Werte übergeben, mit diesen können dann die Variablen initialisiert werden. Der Konstruktor von Klasse1 sähe zB so aus:

Java:
public Klasse1(Klasse2 k2){
...}

und entsprechend dann der Aufruf:

Java:
Klasse2 k2 = new Klasse2();
Klasse1 k1 = new Klasse1(k2);
 
S

s.g.

Gast
danke gonzo17 und wrakas!
das war der fehler, jetzt habe ich es auch verstanden. es funktioniert jetzt.
durch die übergabe der objekte funktioniert es.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
M Zugriff auf eine ArrayList in einer anderen Klasse Java Basics - Anfänger-Themen 4
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
F OOP Instanz einer Klasse an eine andere weitergeben Java Basics - Anfänger-Themen 16
DaCrazyJavaExpert Klassen Von einer Klasse auf eine erbende Klasse zugreifen Java Basics - Anfänger-Themen 13
B Wie kann ich eine Methode einer selbst erstellten Klasse statisch importieren? Java Basics - Anfänger-Themen 5
I Java Eingabe aus einer anderen Klasse in eine andere an Konstruktor übergeben Java Basics - Anfänger-Themen 4
S Methoden eine Instanz einer eigenen Klasse als parameter übergeben Java Basics - Anfänger-Themen 9
S Aus einer Klasse eine andere laden Java Basics - Anfänger-Themen 6
S Interface Implementieren von Methoden aus einer Klasse in eine GUI Java Basics - Anfänger-Themen 6
K Zugriff einer Klasse auf eine andere Andere -> bad operand for binary operator Java Basics - Anfänger-Themen 5
W Klassen Kann eine Variable nicht aus einer Klasse bekommen Java Basics - Anfänger-Themen 9
L Methoden Eine Methode aus einer anderen Klasse aufrufen Java Basics - Anfänger-Themen 4
N OOP Zugriff auf eine Objekt innerhalb einer Klasse aus statischen Methoden Java Basics - Anfänger-Themen 9
E Variable aus einer Methode heraus in eine andere Klasse übergeben Java Basics - Anfänger-Themen 13
J OOP Zugriff einer Klasse auf eine Andere Java Basics - Anfänger-Themen 8
M Zwei Threads greifen auf eine Methode einer Klasse zu. Komplikationen? Java Basics - Anfänger-Themen 18
D Wie neue Instanz einer Klasse erstellen, von der ich nur eine andere Instanz kenne? Java Basics - Anfänger-Themen 13
L Aus einer Methode eine eigene Klasse machen - modular coden Java Basics - Anfänger-Themen 14
A Konstruktorübergabe von einer klasse an eine andere Java Basics - Anfänger-Themen 2
philipp Wie kann ich eine Funktion einer Klasse benutzen ? Java Basics - Anfänger-Themen 2
M Methode einer Klasse in eine andere Übergeben Java Basics - Anfänger-Themen 4
S Variablenwert von einer Klasse in eine andere Klasse geben Java Basics - Anfänger-Themen 2
A Wert einer Variable an eine Methode in einer anderen Klasse. Java Basics - Anfänger-Themen 4
N Daten von einer Klasse an eine andere übergeben? Java Basics - Anfänger-Themen 4
U Integration einer Klasse in eine JSP Java Basics - Anfänger-Themen 2
H JLabel aus einer Klasse an eine andere Klasse übergeben Java Basics - Anfänger-Themen 4
J Von einer Klasse auf eine Methode einer anderen Klasse zugre Java Basics - Anfänger-Themen 6
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
B Objektverwaltung mit ArrayList in einer seperaten Klasse Java Basics - Anfänger-Themen 24
S Auf Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 3
M Auf erstelltes Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 5
F Variablen Werte einer Klasse überschreiben Java Basics - Anfänger-Themen 4
V_Fynn03 Erste Schritte Einen Wert in ein TextField einfügen aus einer anderen Klasse Java Basics - Anfänger-Themen 3
V_Fynn03 Kontostand anzeigen lassen von einer anderen Klasse Java Basics - Anfänger-Themen 3
X Auf Attribut einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 2
S Instanzvariablen vom Typ einer Klasse definieren Java Basics - Anfänger-Themen 12
B Attribut vom Typ einer Klasse? Java Basics - Anfänger-Themen 3
M Objekt einer Klasse speichert die Veränderung nicht Java Basics - Anfänger-Themen 1
K Boolean in einer erstellten Klasse verwenden Java Basics - Anfänger-Themen 14
J Kann man files in einer Klasse speichern. Java Basics - Anfänger-Themen 2
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
E Eigenschaften Werte, in einer anderen Klasse, zuweisen Java Basics - Anfänger-Themen 40
O Anonyme Klasse einer Liste erstellen Java Basics - Anfänger-Themen 7
A Mit JComboBox Ergebnis einen Integer aus einer anderen Klasse aufrufen. Java Basics - Anfänger-Themen 2
K Klasse mit einer Array-Eigenschaft Java Basics - Anfänger-Themen 4
B Klassen Zugriff auf ein Objekt einer Klasse aus einer Methode heraus Java Basics - Anfänger-Themen 4
D Zugriff auf Methode einer anderen Klasse Java Basics - Anfänger-Themen 5
I Instanz einer anderen Klasse zurückgeben Java Basics - Anfänger-Themen 34
F Auf Array einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
J In einer Klasse ein AlertDialog einfügen Java Basics - Anfänger-Themen 4
J Variablen mit einer anderen Klasse bekannt machen Java Basics - Anfänger-Themen 7
H Vererbung Static Scanner Objekt verwenden - von StdIn in einer importierten Klasse lesen Java Basics - Anfänger-Themen 10
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
F Referenz an ein Objekt in einer anderen Klasse erstellen(Nullpointer exception) Java Basics - Anfänger-Themen 6
L Variable aus einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 6
E Threads Methode einer Wartenden Klasse aufrufen Java Basics - Anfänger-Themen 3
ReinerCoder Vererbung von JFrame in einer Klasse entfernen Java Basics - Anfänger-Themen 5
K Klassen Array einer anderen Klasse ... Java Basics - Anfänger-Themen 21
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
N Attribut einer anderen Klasse übertragen/verwenden Java Basics - Anfänger-Themen 5
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
T Klassen Klasse in einer anderen Klasse verwenden. Java Basics - Anfänger-Themen 3
J Die Y Koordinate von einer anderen Klasse auch verändern Java Basics - Anfänger-Themen 1
F Mehrere Instanzen der Klasse A EINER Instanz der Klasse B übergeben Java Basics - Anfänger-Themen 3
karlmasutra Klassen Rückgabe eines Wertes aus einer anderen Klasse Java Basics - Anfänger-Themen 3
S Auf Array einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 13
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
F Aus einer anderen Klasse auf ein JTextField zugreifen Java Basics - Anfänger-Themen 17
A OOP Methodenaufruf in einer anderen Klasse Java Basics - Anfänger-Themen 2
M Erste Schritte Arraylist in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 11
D ArrayList in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben