Variablen zur Laufzeit erstellen?

Status
Nicht offen für weitere Antworten.

Cheefrocker

Bekanntes Mitglied
Hallo zusammen!

Ich hätte da eine Frage, undzwar würde ich gern Variablen dynamisch erstellen und auf diese mit get und set-Methoden drauf zu greifen können.

Mein Problem ist das erst auf eine Datenbank zugreifen muss(mit Hilfe eines Aktenzeichens). Der liefert mir ein String
zurück der z.b wie folgt aufgebaut ist:


"Aktenzeichen=12345678#Name=Heinz#Nachname=Mustermann"


Jetzt wollte ich das möglichst abstrakt gestalten.

Da Aktenzeichen,Name,Nachname sich auch ändern könnten oder weitere Felder hinzukommen dürfen soll ich das möglichst dynamisch gestalten.

Habt ihr ein Lösungsansatz zu meinem Problem!
Ist dies Überhaupt möglich???


Beste Grüsse

:wink:
 
Wildcard hat gesagt.:
Du brauchst einfach eine Klasse die PropertySets speichert, oder du legst key/value Paare in einer Map ab,

Sorry wenn ich blöd frage aber kannst du mir das bissel genauer erläutern was du mit PropertySets meinst!

Mir fehlt einfach ein Anfang!!


Sorry für meine Dummheit
 
Ist es sinnvoll daraus eine Universalklasse zu bauen,

die eigentlich beliebige Zugriffe abspeichert und jeweils verwenden.

Weil es ja sein kann das nicht das Aktenzeichen gefordert ist sonden auf einmal eine Mitgliedsnummer die jedoch auch Get und SetMethoden hat und die andere Variablen hat die jedoch wieder dynamisch gestalten sein sollen!
 
Warum getter/setter? Du willst doch nur Strings speichern. ???:L
Du kannst natürlich beliebige Objekte in die Map legen, für den konkreten Anwendungsfall offenbart sich mir der Sinn allerdings nicht.
 
Eine Map/Hashmap ist - wenn ich dich richtig verstehe - genauso eine Universalklasse, wie du meinst.

Bei dir sähe das so aus:
Code:
Map<Object> map = new Hashmap<Object>();
map.add("Aktenzeichen", new Integer (12345678));
map.add("Name", "Heinz");
map.add("Nachname", "Mustermann");

//Zugriff
System.out.println (map.get("Nachname").toString().substring(1)); //Gibt 'ustermann' aus.
 
Beim holen der Daten ist es noch String! Danach wollte ich die String s mit einem StringTokenizer die Daten zerlegen.

Diese zerlegten Daten sind wiederum Variablen! Weil aber dieser String den ich von der Datenbank kriege eventuell angepasst sein könnte bzw neue Variablen hinzu gefügt werden könnten soll eine Klasse möglichst dynamisch gebaut werden. Sprich ich sollte nicht ständig dann im SourceCode was ändern müssen!

Hoffe ihr versteht was ich meine!???
 
Ich verstehe nicht was dein Problem ist :? Nimm ne HashMap und gut ist 😉 (Und dann kannst du natürlich noch ne eigene Klasse mit gettern/settern bauen, die an die Map delegieren, aber das musst ja wohl du dir ausdenken und entscheiden, was sinnvoll ist)
 
Vielen Dank @Alluvatar! Funktioniert perfekt!

Aber noch eine kurze Frage! Die Werte in der HashMap kann ich dann im nachhinein nicht ändern stimmt das??
 
Illuvatar hat gesagt.:
Code:
Map<Object> map = new Hashmap<Object>();
...

Wenn schon generisch, warum dann nicht gleich richtig: 😉

Code:
Map<String, Integer> map = new HashMap<String, Integer>();
...
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben