# Variablen zur Laufzeit erstellen?



## Cheefrocker (13. Jun 2006)

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 (13. Jun 2006)

Du brauchst einfach eine Klasse die PropertySets speichert, oder du legst key/value Paare in einer Map ab,


----------



## Cheefrocker (13. Jun 2006)

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


----------



## Cheefrocker (13. Jun 2006)

Oder wie das mit dem Map funktioniert!!


----------



## Wildcard (13. Jun 2006)

```
Map map<String> = new Hashmap<String>();
map.add("Aktenzeichen","12345678");
```


----------



## Cheefrocker (13. Jun 2006)

Ist mit der Map die Hashmap gemeint??


----------



## Cheefrocker (13. Jun 2006)

Vielen dank @Wildcard jetzt hab ich das verstanden


Aber wie bau ich die Getter und Setter-Methoden in diese Variablen ein??


----------



## Cheefrocker (13. Jun 2006)

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!


----------



## Wildcard (13. Jun 2006)

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.


----------



## Illuvatar (13. Jun 2006)

Eine Map/Hashmap ist - wenn ich dich richtig verstehe - genauso eine Universalklasse, wie du meinst.

Bei dir sähe das so aus:

```
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.
```


----------



## Gast (13. Jun 2006)

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!???


----------



## Illuvatar (13. Jun 2006)

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)


----------



## Cheefrocker (14. Jun 2006)

Vielen Dank @Alluvatar! Funktioniert perfekt!

Aber noch eine kurze Frage! Die Werte in der HashMap kann ich dann im nachhinein nicht ändern stimmt das??


----------



## byte (14. Jun 2006)

Illuvatar hat gesagt.:
			
		

> ```
> Map<Object> map = new Hashmap<Object>();
> ...
> ```



Wenn schon generisch, warum dann nicht gleich richtig: 


```
Map<String, Integer> map = new HashMap<String, Integer>();
...
```


----------



## Cheefrocker (14. Jun 2006)

Danke @byto!! Werd es dann so implementieren!! 

Verbraucht den Hashmap viel Speicher???


----------

