static ArrayList in non-static

Marcel98

Mitglied
Hallo ich habe einen static ArrayList die aber keine sein sollte. Leider habe ich noch keine Ahnung von static und non static. Wie kann ich diese static ArrayListe ändern?


[CODE lang="java" title="Klasse 1"]public class FlightManager {


public static ArrayList<Flight> flighListUser = new ArrayList<>();[/CODE]

[CODE lang="java" title="Klasse 2"]import java.util.ArrayList;

public class User {

private String name;
private int age;
private String email;
private boolean loggedIn;



public User(String name, int age, String email, boolean loggedIn, ArrayList<Flight> flightListUser) {
super();
this.name = name;
this.age = age;
this.email = email;
this.loggedIn = loggedIn;
FlightManager.flighListUser = flightListUser;

}


public ArrayList<Flight> getFlighListUser() {
return FlightManager.flighListUser;
}


public static void setFlighListUser(ArrayList<Flight> flighListUser) {
FlightManager.flighListUser = flighListUser;
}


public boolean getLoggedIn() {
return loggedIn;
}


public void setLoggedIn(boolean loggedIn) {
this.loggedIn = loggedIn;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public int getage() {
return age;
}


public void setAge(int age) {
this.age = age;
}


public String getEmail() {
return email;
}


public void setEmail(String email) {
this.email = email;
}



}[/CODE]
 
Lass halt einfach das "static" weg.

Wozu braucht ein einzelner User denn eine Liste von Usern? Sollte dieses nicht beim Manager liegen?
Java:
FlightManager manager = new FlightManager();

User hans = new User(); // Parameter weggelassen

manager.addUser(hans); // User dem Manager übergeben

// ...

List<User> allUsers = manager.getAllFlightListUsers();
 
Zuletzt bearbeitet:
wenn du das static weg lässt musst du natürlich von der Klasse auch ein Objekt erstellen um auf die Liste zugreifen zu können.
Du wirst dann schon in Zeile 18 einen Fehler bekommen. Weil du kein Objekt davon hast.
 
Zuletzt bearbeitet:
Lass halt einfach das "static" weg.

Wozu braucht ein einzelner User denn eine Liste von Usern? Sollte dieses nicht beim Manager liegen?
Java:
FlightManager manager = new FlightManager();

User hans = new User(); // Parameter weggelassen

manager.addUser(hans); // User dem Manager übergeben

// ...

List<User> allUsers = manager.getAllFlightListUsers();
Der User hat eine Liste von Flügen die er gebucht hat. Da sind keine User gespeichert.
Static einfach weglassen ist nicht wirklich hilfreich xD
 
Evtl. wäre wirklich erst einmal die Frage angemessen, was Du da wie modellieren wolltest.

Was soll das denn für eine ArrayList sein, die Du einem User mitgeben musst im Konstruktor (also irgendwie zum User gehört) aber dann als irgend eine gloable Liste in FlightManager ist (die dann mit jedem neuen User neu überschrieben wird)?

Also ggf. erst einmal beschreiben (In Worten - vergiss da erst einmal Java) wie die Zusammenhänge sind und wer welche Daten für was benötigt.

Vor allem die Zusammenhänge sind sehr dubios - Wenn ein FlightManager Flüge verwaltet: Warum fragst Du den den User?

Der User hat eine Liste von Flügen die er gebucht hat. Da sind keine User gespeichert.
Static einfach weglassen ist nicht wirklich hilfreich xD
Dann speichere die Liste in dem User. Wo kommt der FlightManager ins Spiel?
 
wenn du das static weg lest musst du natürlich von der Klasse auch ein Objekt erstellen um auf die Liste zugreifen zu können.
Du wirst dann schon in Zeile 18 einen Fehler bekommen. Weil du kein Objekt davon hast.
User sind bzw können erstellt werden. Problem ist jeder User hat die gleiche ArrayListe und die soll ja für jeden User anders aussehen.
 
Evtl. wäre wirklich erst einmal die Frage angemessen, was Du da wie modellieren wolltest.

Was soll das denn für eine ArrayList sein, die Du einem User mitgeben musst im Konstruktor (also irgendwie zum User gehört) aber dann als irgend eine gloable Liste in FlightManager ist (die dann mit jedem neuen User neu überschrieben wird)?

Also ggf. erst einmal beschreiben (In Worten - vergiss da erst einmal Java) wie die Zusammenhänge sind und wer welche Daten für was benötigt.

Vor allem die Zusammenhänge sind sehr dubios - Wenn ein FlightManager Flüge verwaltet: Warum fragst Du den den User?


Dann speichere die Liste in dem User. Wo kommt der FlightManager ins Spiel

Das widerspricht sich irgendwie...
Ups, jeder User hat eine ArrayList aber momentan sind die ArrayListen von jedem User gleich
 
wenn du das static weg lässt brauchst du ein Opjekt von der Klasse FlightManager in der User Klasse.
somit könntest du die liste auch geich in user halten.
 

Zurück
Oben