Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich habe eine Klasse die sehr viele static String variablen zur verfügung stellt.
Jetzt möchte ich die passende dynamisch auswählen. Das heißt ich habe einen String der als Inhalt den Variablennamen hat auf die ich gerne zugreifen möchte.
Also angenommen in besagter Klasse gibt es die Variable blub:
class1.blub
Und jetzt hab ich einen String s:
String s = "blub";
Gibt es eine möglichkeit dass ich jetzt auf blub zugreife über den string s? Also im prinzip sowas: class1.*(s)
Hoffe ihr versteht was ich mein.
Die vorhandene KLasse mit den strings kann ich nicht ändern.
also ich bin mir nicht sicher, was genau du meinst.
Was ich und Aradauer verstehen:
Du willst mit Hilfe eines Strings auf einen anderen String (deinen static String in deiner Klasse) zugreifen. Also praktisch gesprochen suchst du eine Methode, der du einen String übergibst und die dann den dazugehörigen static String zurück liefert.
Ist das korrekt?
Wenn ja, dann ist vielleicht eine Map (z.B. HashMap) genau das, was du suchst
Ja genau, das ist korrekt. Allerdings soll ich die Klasse mit den Strings nicht verändern, und das müsst eich ja tun um die methode zu implementieren. Wenn es wirklich keine andere möglichkeit gibt, werde ich vielleicht nochmal anfragen ob ich die Klasse verändern kann.
EDIT: Mit verändern meine ich ob ich der Klasse noch was hinzufügen kann. Die Klasse wurde mir so gegeben mit der Bitte sie nicht zu verändern.
Die Map muss ja nicht in dieser Klasse implementiert werden. Man kann ja auch eine Util Klasse definieren, die sich per Reflection diese Map erzeugt und entsprechende Methoden zur Verfügung stellt.
Aber in jedem Fall, müsstest du ja eine Abbildung machen, und sei es, dass du das nur über eine Methode machst, die mit IF den String abfragt. Außerdem müsstest du doch sowieso etwas schreiben, denn du willst ja diese Abbildung von String -> Static String machen. Also Code müsste da doch in jedem Fall geschrieben werden, oder verstehe ich da deine Aufgabe falsch?
Ja code muss auf jeden fall geschrieben werden. Nur sollte es eben nicht in diese Klasse geschrieben werden.
In eine Utility Klasse ist vollkommen in Ordnung. Reflection kenn ich jetzt noch nicht, werde mich da mal informieren. Oder wenn jemanden einen guten Link kennt, darf er ihn gerne hier posten
Danke euch