Klassen Sämtliche Variablen einer Klasse übernehmen

Messoras

Aktives Mitglied
Hallo zusammen,
ich brauche für ein Programm eine Speicherfunktion und weiß auch wie ich das mit einem Output-/Inputstream anstellen kann. Mein Problem ist nur, dass die entsprechende Klasse ca. 100 Variablen hat und es sich extrem umständlich darstellt alle Variablen in den Konstruktor des Speicherstandes und die Lademethode zu stopfen oder aus der Klasse heraus zu übernehmen.
Gibt es eine Alternative zum aufwändigen
Java:
this.a = save.a;
this.b = save.b;
this.c = save.c;
...
?
Übrigens ist Vererbung in diesem Fall ungünstig, da es sich um eine Klasse handelt, die im Konstruktor ein JFrame und darauf ein Panel anlegt und die Variablen erst anschließend übernehmen kann.
Hat da jemand eine Idee?

Gruß,
Messoras
 
Sind die Variablen alle vom selben Datentyp? Wenn ja wäre eine ArrayList vielleicht dein Weg zum Ziel.

Gruß
Robert
 
Es sind viele doubles, einige ints, booleans, Strings, ein paar Containerobjekte und enums verschiedener Typen :/
Außerdem müsste ich die einzelnen Werte ja auch aus der ArrayList wieder auslesen.

Gruß,
Messoras
 
Ich würde mir da lieber überlegen diese Klasse mit ca. 100 Attributen zu überarbeiten und vielleicht etwas aufzuteilen oder ähnliches.
 
Ich versuche es mal indem ich sämtliche Attribute einfach in einer Klasse Attributes ablege, die Serializable implementiert. Ich hoffe das schadet der Performance nicht, wenn ein paar hundert Threads laufen "😀
 
Das wird mMn nicht wirklich besser.

Die Idee war eig. folgende:

(Nur beispielhaft - kenne ja den QC nicht)
Du hast eine Klasse mit den Attributen von x verschiedenen Dingen.
Meinetwegen Attribute für ein Auto, für ein Menschen und für Häuser.

Dann splitte die Klasse (mit Attr.) doch lieber in Unterklassen auf (Auto, Mensch, Haus) und erschaff dir so eine gewisse Grundstruktur.
Wenn du dann bswp. die toString Methode überschreibst dann kannst du einfach

Java:
Mensch me = new Mensch();
Haus haus = new Haus();

save(me.toString());
save(haus.toString());

So sparst du Code und es ist übersichtlicher
 

Zurück
Oben