1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

dynamische variablenabfrage

  • nodestroy
  • 16. März 2009 um 17:37
  • Unerledigt
  • nodestroy
    6
    nodestroy
    Mitglied
    Reaktionen
    14
    Punkte
    349
    Beiträge
    65
    • 16. März 2009 um 17:37
    • #1

    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

  • Sandybutt
    8
    Sandybutt
    Mitglied
    Reaktionen
    4
    Punkte
    554
    Beiträge
    99
    • 16. März 2009 um 18:24
    • #2

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

  • nodestroy
    6
    nodestroy
    Mitglied
    Reaktionen
    14
    Punkte
    349
    Beiträge
    65
    • 16. März 2009 um 18:28
    • #3
    Zitat von Sandybutt

    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.

  • Trux
    12
    Trux
    Mitglied
    Reaktionen
    26
    Punkte
    1.396
    Beiträge
    274
    • 16. März 2009 um 19:12
    • #4

    so in etwa kannst das machen:

    PHP
    import java.lang.reflect.Field;
    
    
    
    
    public class Test {
    
    
        public static void main(String[] args) throws Exception {
    
            A a = new A();
            a.fieldA = "a";
            a.fieldB = "b";
    
            String fieldName = "fieldA";
            Field f = a.getClass().getField(fieldName);
    
    
            Object value = f.get(a);
            System.out.println(value);
        }
    
    
    }
    
    
    class A {
    
        public String fieldA;
    
        public String fieldB;
    }
    Alles anzeigen
  • nodestroy
    6
    nodestroy
    Mitglied
    Reaktionen
    14
    Punkte
    349
    Beiträge
    65
    • 16. März 2009 um 21:38
    • #5

    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)

  • PWL
    5
    PWL
    Mitglied
    Punkte
    240
    Beiträge
    31
    • 17. März 2009 um 01:14
    • #6

    normal mit list.getElementAt(i);

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

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

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung