Auf erstelltes Objekt einer anderen Klasse zugreifen.

Mika34

Bekanntes Mitglied
Hallo,

Ich habe gerade ein Problem. Ich möchte auf ein Objekt in einer anderen Klasse zugreifen mittels einem Getter. Dies sieht wie folgt aus:
Das passiert in der Klasse BigManager
Java:
    RailManager railManager = new RailManager();

    public RailManager getRailManager() {
        return this.railManager;
    }
Nun erstelle ich ein Objekt vom BigManager über
Code:
BigManager bigManager = new BigManager();
in der Klasse Meeting.
Wenn ich jetzt mittels bigManager.getRailManager() in der Klasse Meeting auf das Objekt railManager in im Objekt bigManager zugreifen will, dann kriege ich eine NullPointerException geworfen.
Wie muss ich hier vorgehen? Ist das überhaupt zu bewerkstelligen? Muss ich RailManager railManager in den Konstruktor vom BigManager packen?

Ich bin wie immer über jede Hilfe tierisch dankbar!
 
Also in Meeting hast du an einer Stelle die Erstellung einer Instanz von BigManager:
Code:
BigManager bigManager = new BigManager();

An anderer Stelle greifst Du auf bigManager zu und bekommst eine NPE?

Kannst Du mehr von der Klasse Meeting zeigen? Übliche Probleme hier sind:
a) Du verwendest in einer Methode die lokale Variable bigManager. Dann gilt diese natürlich nur in dieser Methode. In einer anderen Method hast Du diese Variable dann nicht.
b) Ein Problem, das man auch hin und wieder hier antrifft ist:
Du hast eine InstanzvariablebigManager:
Code:
BigManager bigManager;
In der Methode (z.B. im Konstruktor) hast Du dann eine Zuweisung:
Code:
BigManager bigManager = new BigManager();
Diese Zuweisung weist die neu erstellte Instanz aber nicht der Instanzvariable zu sondern einer neuen, lokalen Variablen mit gleichem Namen.
Korrekt wäre da der Code:
Code:
BigManager bigManager = new BigManager();
c) Wenn Du an zwei Stellen auf eine Instanzvariable zugreifst, dann kann natürlich sein, dass die Stelle, die die Instanzvariable nutzt, aufgerufen wurde, ehe die andere Stelle aufgerufen wurde, in der die variable gesetzt wird.

Aber wie gesagt: Das sind nur mögliche Probleme - zeige uns den genauen Code und wir können näheres sagen.
 
So sieht die Klasse aus, also im Groben, aber ich verstehe es nicht. Wieso wirft er mir da eine NPE
Java:
public class BigManager {

RailManager railManager = new RailManager();
    TrainManager trainManager = new TrainManager();
    DrivingManager drivingManager = new DrivingManager();
  
    public BigManager() {
        
    }
}
 
Wo genau wird eine NPE geworfen? Genaue Codestelle, genauer Stacktrace bitte. So ist da nichts zu sagen.

So die Konstruktoren, die durch die Zuweisung aufgerufen werden, keine NPE geworfen wird, wird es bei dem gezeigten Code zu keiner NPE kommen.
 
Das kommt davon, wenn man einfach nicht übersichtlich codet und dann Rechtschreibfehler einbaut.

Ohje, aber trotzdem vielen Dank! Ich hoffe das passiert mir nicht noch einmal
 

Zurück
Oben