variable als attributname
Peter
- java
Hallo,
Wie kann ich denn in JAVA eine variable als attributname verwenden.
Beispiel klasse a hat eine variable public int b
und dieses b soll in einer varibalen stehen daß ich beispielweise den aufruf
String c="b";
a.[c] schreiben kann und dann a.b bekomme. also das nette $$varname in php :-)
geht das ? wenn ja wie ?
Gruss
Peter
Hallo,
Wie kann ich denn in JAVA eine variable als attributname verwenden.
Beispiel klasse a hat eine variable public int b
und dieses b soll in einer varibalen stehen daß ich beispielweise den aufruf
String c="b";
a.[c] schreiben kann und dann a.b bekomme. also das nette $$varname in php :-)
geht das ?
So wie du das beschreibst nicht, nein.
Es gibt allerdings Hash-Tabellen. Dort kannst du beliebigen Objekten
andere Objekte zuweisen. Da Strings auch Objekte sind, kannst du also
Strings andere Objekte zuweisen.
Verwende hierfür java.util.Hashtable oder java.util.HashMap.
Das geht dann ungefähr so:
HashMap meineHashMap = new HashMap();
meineHashMap.put("hans", "karlsruhe");
meineHashMap.put("theo", "münchen");
meineHashMap.put("axel", "hamburg");
System.out.println(meineHashMap.get("theo"));
Ausgabe wäre damit "münchen".
Aber, wie gesagt, sowohl Schlüssel (hier "hans", "theo" und "axel")
als auch zugeordnete Werte ("karlsruhe", ...) können beliebige Objekte
sein.
Wozu brauchst du denn das von dir weiter oben beschriebene Verhalten?
Also daß Instanzvariablen in anderen Variablen stehen. Vermutlich
gibt es dafür eine seeeehr viel saubere Lösung als die von dir
vorgeschlagene. Du mußt nur sagen, was du willst.
Gruß
Slyh
PS: Du plenkst. Bitte stell das ab.
Also was ich eingetlich machen will:
Ich habe eine Klasse mit eingien Attributen, um genau zu sein Farben, diese Attribute der Klasse heißen eben zB blau, gelb, gruen etc. ds sind int arrays wo dann jeweils noch die rgb-werte der Farben gespeichert werden.
in einer anderen klasse bekommen ich nun einen String geliefert der einem dieser Farbname entspricht und jetzt will ich eben die rgb-werte dazu haben. d.h. ich muß eben das Attribut, daß genau diesem String entspricht ansteuern. Ist kar geworden was ich meine? Also mir fällt keine wirklich tolle Lösung dazu ein...
Gruss
Peter
Hi,
Also mir fällt keine wirklich tolle Lösung dazu ein...
und das, obwohl Dir Slyh eine frei Haus geliefert hat?
Cheatah
Hi,
Also mir fällt keine wirklich tolle Lösung dazu ein...
und das, obwohl Dir Slyh eine frei Haus geliefert hat?
Es ging um eine bessere Lösung wie er selbst unter dem Thread schreibt !
Wer lesen kann ist klar im Vorteil!
Gruss
Peter
Hi,
Es ging um eine bessere Lösung wie er selbst unter dem Thread schreibt !
Es gibt unter Java _keine_ bessere Lösung für Dein Problem als die Verwendung von Maps!
Der Verwendung von Reflection in Produktivsystemen stehe ich grundsätzlich sehr skeptisch gegenüber.
Viele Grüße,
Martin
Hallo!
Der Verwendung von Reflection in Produktivsystemen stehe ich grundsätzlich sehr skeptisch gegenüber.
doch, dann ist die erste Version langsam und man kann sie per Patch beschleunigen...
Dominik
Hi,
doch, dann ist die erste Version langsam und man kann sie per Patch beschleunigen...
Kann man diese Aussage auch verständlicher formulieren? Mir ist nämlich nicht klar, was Du meinst.
Viele Grüße,
Martin
Hi,
Es ging um eine bessere Lösung
_noch_ besser?
wie er selbst unter dem Thread schreibt !
Was Slyh schrieb, schrieb er vor Deiner Erklärung, konnte also auch nicht entscheiden, ob sie gut ist oder nicht.
Wer lesen kann ist klar im Vorteil!
Ah, danke für den Hinweis. Heißt das, Du möchtest hier gar keine Hilfe mehr bekommen?
Cheatah
Ah, danke für den Hinweis. Heißt das, Du möchtest hier gar keine Hilfe mehr bekommen?
...die Kritikfähigkeit kennt keine Grenzen, Respekt, wenn Du Dich im RealLife auch immer gleich so angegriffen fühlst dann seh ich schwarz...
Gruss
Peter
Hi,
Ah, danke für den Hinweis. Heißt das, Du möchtest hier gar keine Hilfe mehr bekommen?
...die Kritikfähigkeit kennt keine Grenzen, Respekt, wenn Du Dich im RealLife auch immer gleich so angegriffen fühlst dann seh ich schwarz...
Du hegst augenscheinlich also tatsächlich den Wunsch, Dich hier wie die Axt im Walde aufzuführen. Für jemanden, der hier etwas von anderen _will_, ist das ein sehr eigenwilliges Vorgehen. Vielleicht solltest Du Dir einfach mal vor Augen führen, in welcher Situation Du Dich eigentlich befindest, bevor Du Deine Sprechschale in ungeahnten Größenverhältnissen öffnest.
Cheatah
Du hegst augenscheinlich also tatsächlich den Wunsch, Dich hier wie die Axt im Walde aufzuführen. Für jemanden, der hier etwas von anderen _will_, ist das ein sehr eigenwilliges Vorgehen. Vielleicht solltest Du Dir einfach mal vor Augen führen, in welcher Situation Du Dich eigentlich befindest, bevor Du Deine Sprechschale in ungeahnten Größenverhältnissen öffnest.
*lol* wie die Axt im Walde...stimmt schon mein posting davor war einfach zu krass , das sollte echt zensiert werden. Ich muß die ja dermaßen zugesetzt haben damit das tut mir ehrlich leid, will nie wieder ein kritisches Wort in den mund nehme
Gruss
Peter (rückwärts gehend , sich verneigend)
Hallo,
Es ging um eine bessere Lösung wie er selbst unter dem Thread schreibt !
Nein. Ich schrieb "Vermutlich gibt es dafür eine seeeehr viel saubere
Lösung als die von _dir_ vorgeschlagene."
Ich habe mal das "dir" hervorgehoben. Ich wollte damit zum Ausdruck
bringen, daß deine vorgeschlagene Lösung mit an Sicherheit grenzender
Wahrscheinlichkeit nicht sauber wäre, und durch eine anständige Lösung
ersetzt werden kann.
Die Verwendung einer Hash-Tabelle (also Map) ist die einzig sinnvolle
Lösung an dieser Stelle.
Gruß
Slyh
Hallo,
Wie kann ich denn in JAVA eine variable als attributname verwenden.
Beispiel klasse a hat eine variable public int b
und dieses b soll in einer varibalen stehen daß ich beispielweise den aufruf
String c="b";
a.[c] schreiben kann und dann a.b bekomme. also das nette $$varname in php :-)
geht das ? wenn ja wie ?
Achja, du könntest außerdem vermutlich mit Reflection arbeiten. (Siehe
ein Java-Buch deiner Wahl.) Aber, wie gesagt, mit großer Wahrscheinlichkeit
gibt es eine sinnvolle Lösung für dein Problem.
Gruß
Slyh