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

variablenname aus variable

  • DeepB
  • 1. November 2007 um 12:48
  • Unerledigt
  • DeepB
    5
    DeepB
    Mitglied
    Punkte
    215
    Beiträge
    40
    • 1. November 2007 um 12:48
    • #1

    hallo

    also erstens: das ist eine reine interessensfrage, ich wüsste atm keinen praktischen einsatz dafür.

    kann ich in Java eine variable deklarieren, und den variablennamen aus einer variable nehmen.

    also zb:
    String s=asdf;
    dann würde ich gerne eine variable zb int deklarieren, wobei ihr name aus s kommen sollte, also in diesem fall asdf


    ich hoffe es ist klar was ich meine

    mfg
    DeepB

  • Jensi
    28
    Jensi
    Mitglied
    Reaktionen
    141
    Punkte
    8.486
    Beiträge
    1.649
    • 1. November 2007 um 13:35
    • #2

    Google nach "variable variable names"... PHP kann das definitiv, Java AFAIK nicht.

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 1. November 2007 um 14:20
    • #3

    Also ich würde das mit einer HashMap (name,objekt) machen.

    Dipper dipper dii dipper dii dipper dii duuu

  • Darkshadow_0
    2
    Darkshadow_0
    Mitglied
    Punkte
    25
    Beiträge
    5
    • 3. November 2007 um 09:14
    • #4

    atm kann man in java nicht den inhalt von variablennamen als variablennamen nehmen.
    hat mir zb beim erstellen von einer random menge buttons probleme bereitet. naja aber wie schon sauzachn gesagt hat, du kannst ja ne String variable name mit der Variable, die den Namen setzen soll belegen und ihr ein Objekt zuordnen

  • Stefan Kögl
    10
    Stefan Kögl
    Mitglied
    Reaktionen
    10
    Punkte
    1.010
    Beiträge
    199
    • 3. November 2007 um 10:28
    • #5

    Kann mir bitte jemand erklären, welchen Vorteil man von variablen Variablennamen hat? Da geht doch jegliche Typsicherheit zur Compile-Zeit verloren...

    -- Stefan

  • sauzachn
    17
    sauzachn
    Mitglied
    Reaktionen
    51
    Punkte
    3.101
    Beiträge
    606
    • 3. November 2007 um 11:49
    • #6
    Zitat von Stefan Kögl

    Kann mir bitte jemand erklären, welchen Vorteil man von variablen Variablennamen hat? Da geht doch jegliche Typsicherheit zur Compile-Zeit verloren...


    Java ist sowieso nicht typsicher :) Allein die Implementierung von Generizität...

    Aber du hast natürlich recht: Solche "Tricks" führen letztlich zu mehr Problemen als man ursprünglich hatte. Und man kann es ja auch - wie gesagt - über HashMaps lösen, das sollte relativ sicher sein.

    Dipper dipper dii dipper dii dipper dii duuu

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 3. November 2007 um 12:32
    • #7
    Zitat von Stefan Kögl

    Kann mir bitte jemand erklären, welchen Vorteil man von variablen Variablennamen hat?
    -- Stefan

    Mir faellt jetzt kein Grund ein, warum man lokale Variablennamen dynamisch erstellen sollte, aber durch Metaprogrammierung (Ueberbegriff) laesst sich oft sehr eleganter Code erzeugen.

    Im Webframework Ruby On Rails werden z.B. beim ActiveRecordPattern dynamisch Klassen anhand des Datenbankschemas aufgebaut. Also sagen wir Du hast eine Tabelle 'people' mit den feldern 'fullname' und 'age', dann kannst du schreiben:

    Code
    class Person < ActiveRecord::Base
    end

    und anschliessend haben dann Instanzen von 'Person' Zugriffsmethoden, um Records zu bearbeiten:

    Code
    person = Person.find_by_fullname "Max Mustermann"
    person.fullname = "Hansi Hinterseer"

    Das bedeutet, Du hast die Informationen der Feldnamen nicht redundant, sondern nur einmal vorliegen (naemlich in der Datenbank). Wenn Du das Schema aenderst, dann sind die Aenderungen automatisch auch im Code.

    Das ist nur ein Pattern und nicht immer sinnvoll (z.b. bei legacy Datenbanken). Aber es ist sehr populaer und nimmt oft eine ganze Menge Komplexitaet aus dem Code.

    Dann gibt es z.b. den Builder, mit dem man z.B. sehr elegant XML erstellen kann, indem die Methoden zur Laufzeit erstellen werden:

    http://builder.rubyforge.org/


    Zitat von Stefan Kögl


    Da geht doch jegliche Typsicherheit zur Compile-Zeit verloren...


    Ja, aber wie stark dieser Nachteil sich in Relation zu den Vorteilen von dynamischen Typing auswirkt (weniger Code, lesbarere Konstrukte) ist alles andere als sicher und wird seit Jahrzehnten ausgiebig diskutiert. Ein klassisches Gegenargument ist z.B.: Wenn man Test-driven arbeitet, dann decken die Unittests ohnehin auch Typfehler schnell auf. Interessant sind hier auch Sprachen wie Haskell, die mit optionaler statischer Typisierung und Typeninferenz arbeiten.

    lg, Benjamin Ferrari, bookworm.at

  • Stefan Kögl
    10
    Stefan Kögl
    Mitglied
    Reaktionen
    10
    Punkte
    1.010
    Beiträge
    199
    • 3. November 2007 um 13:24
    • #8

    In deinem Beispiel hätte ich den Weg bevorzugt, die Klasse Person anhand der Datenbank-Struktur generieren zu lassen und dann von dieser zu erben, um sie um eigene Methoden etc zu ergänzen... naja, Geschmackssache.

    -- Stefan

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    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