dynamische variablenabfrage

  • hi,

    ist es mit java irgendwie möglich, einen string als variablennamen auszuwerten?

    zb:

    String typeA = "test";
    String type = "typeA";
    S.o.p(type); // sollte dann test ausgeben

    so wie in php das $$

    lg
    d

  • Grundsätzlich nein, allerdings kannst du mittels Reflection auf die Member eines Objekts zugreifen. Lokale Variablen sind davon allerdings ausgenommen. Meistens lässt sich eine ähnliche Funktionalität herstellen, indem man eine Hashtable <String, Object> heranzieht und mittels put(String, Object) und get(String) Objekte ablegt bzw. wieder aufruft.

    "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"

  • Grundsätzlich nein, allerdings kannst du mittels Reflection auf die Member eines Objekts zugreifen. Lokale Variablen sind davon allerdings ausgenommen. Meistens lässt sich eine ähnliche Funktionalität herstellen, indem man eine Hashtable <String, Object> heranzieht und mittels put(String, Object) und get(String) Objekte ablegt bzw. wieder aufruft.

    ok thx, habs jetzt mit einer map gelöst. dachte das geht auch einfacher.

  • so in etwa kannst das machen:

  • perfekt, danke!

    eine frage hätt ich noch:

    hab eine JList, die mit einem Vector befüllt ist (Vector mit Objects; die Objectklasse hat eine passende toString() Methode, um sinnvolle Sachen anzuzeigen)

    wie kann man jetzt das ausgewählte object zurückbekommen (list ist singleselect)

    MyObject m = mySelectList.getSelectedObject(); <- gibt es natürlich nicht, funktioniert das überhaupt? (oder bekommt man immer nur das value zurück was dann auch tatsächlich in der JList steht)

    //edith sagt:
    MyObject selected = (MyObject)mySelectList.getSelectedValue();

    Einmal editiert, zuletzt von nodestroy (16. März 2009 um 22:05)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!