Announcement

Collapse
No announcement yet.

Dynamische Variablennamen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dynamische Variablennamen

    Moin!

    Eine ganz blöde Frage: ist in Java die Vergabe von dynamischen Variablennamen möglich?

    so was in der Art:

    for (int i = 0; i < 5; i++)
    {
    String var["i"] = new String();
    }

    Wie geht dann dieses var["i"]?

  • #2
    Hallo!

    Leider verstehe ich Deine Frage bzw. Deine Programmierabsicht nicht. Vielleicht könntest Du sie noch einmal erklären. Was willst Du mit der for-Schleife erreichen?

    Meinst Du folgende Situation:
    Du hast fünf String-Variablen mit den Namen var0, var1, var2, var3 und var4 und Du willst sie alle in einer Schleife gleichartig verarbeiten und willst daher die Variablen über Variablennamen mit "Wildcard" ansprechen?
    Das geht in Java nicht (gibt es eine Sprache, in der das geht?).
    Du müßtest anstatt mehrere String-Variablen mit eigenen Namen eine String-Array-Variable anglegen, die Du dann in der Schleife selbstverständlich durchiterieren könntest.

    In der Hoffnung, geholfen zu haben,
    Stefa

    Comment


    • #3
      Hallo eugenet,
      Stefan hat Recht. Variablennamen müssen zum Zeitpunkt der Kompilierung fesstehen. Eine Zuweisung zur Laufzeit ist nicht möglich.
      Gruß ngom
      http://www.winfonet.eu

      Comment


      • #4
        hallo zusammen,

        ich habe nicht soviel ahnung in c, aber wenn ich mich recht entsinne geht eine indizierung eines arrays mit worten oder chars in c. das heißt in etwa:

        char index='a';
        int i;
        int[26] aArray;

        for(i=0;i<26;i++,index++)
        aArray[index]=i;

        dies sollte gehen. bei den array grenzen bin ich mir jetzt aber mal nicht sicher. in java habe ich soetwas noch nie probiert, vermute aber mal das als arrayindex nur ein int zugelassen ist. eine alternative wäre evtl. ja eine hashtable o.ä.

        mfg

        der ja

        Comment


        • #5
          Jawohl, das Problem wurde richtig erkannt! Habe mich wahrscheinlich nicht eindeutig ausgedrückt.

          Wollte wissen ob es auch ohne Array möglich wäre.

          Thanx you all

          Comment


          • #6
            Hallo eugenet,

            ich stehe genau vor dem selben problem..

            Hast du eine Lösung gefunden????

            Danke schon ma

            Comment


            • #7
              Hallo zusammen,
              @Francesco: Nimm ne Hashtable
              @Jan: Deine Lösung funktioniert wahrscheinlich deswegen, weil in C char als Zahlenwert interpretiert wird nämlich 0 bis 255.
              Gruß ngom
              http://www.winfonet.eu

              Comment


              • #8
                Hallo zusammen,

                @ngomo: Ja du hast recht, dies ist der grund. ich meine es gibt eigentlich keinen wirklichen grund, weshalb man dies braucht, allerdings kann man in einigen bereichen damit durchaus lustige sachen zaubern.

                imho, wie schon weiter oben erwähnt, ist dies (oder ähnliches) glaube ich in java nicht möglich. aber wozu auch? es ist zwar lustig, aber erfüllt nicht gerade die anforderungen an guten code (verständlich, wartbar, ... ).

                ps: kann mir jemand erklären weshalb alle einträge links auf den java tag sind? egal wohin ich klicke, immer geht so ein scheiß neues fenster auf. das nervt extrem.

                mf

                Comment


                • #9
                  Hallo,

                  ganz einfach wozu ich es brauche..Ich habe eine GUI die ich mit sehr vielen Informationen füttern muss. Jetzt ist so, dass ich eine Anzahl vordefinerter Strings habe die ich zur Verfügung habe. Nun ist so das ich gerne dynamisch hätte. Sprich: ich gucke in der DB wieviel Informationen ich habe, und genau soviele Variablen brauche ich um dies in der GUI zu übergeben.

                  Für sowas wäre sowas wirklich super... Dann könnte ich dies wunderbar mit schleifen lösen und zur Laufzeit immer variablen anlegen die ich brauche....

                  verstanden??

                  Danke Euc

                  Comment


                  • #10
                    vielleicht sollte ich mein Anliegen etwas genauer beschreiben... Ich muss eine GUI mit Daten füllen. Nur ist es so das jede Abfrage mehr oder weniger haben kann.. Die Daten aus der DB lege ich in einem Array ab, bzw. Vector. Und mein Problem ist das ich entweder mega viele JLabel(In diesen schreibe ich die Were rein) selbst anlegen muss oder mir eine dynamische Lösung einfallen lasse. Weil so könnte ich einfach gucken wie groß das Array ist und genau soviele Variable erstellen könnte, in dene ich die Daten hinterlege..JTable kommt leider nicht in frage, weil das ja ein dynamisches Konzept wäre..

                    Ich hoffe es ist verständlich..

                    Dank

                    Comment


                    • #11
                      hi,

                      warum machst du nicht sowas in der art:
                      <code>

                      JPanel aPanel = new JPanel();

                      for(i=0; i< quellArray.length;i++)
                      aPanel.add(new JLabel(quellArray[i]));

                      </code>

                      geht. oder nicht

                      Comment


                      • #12
                        Hmm... Die idee ist super aber die umsetzung wird wahrscheinlich nicht gehen...
                        Ich muss ja die Label variablen noch settings mitgeben schrift, größe, position usw...

                        Das ist schade das es nicht mit Java geht :-

                        Comment


                        • #13
                          hi,

                          das kannst du doch alles in der schleife mit erledigen. was hast du denn so riesiges vor das es nicht gehen soll? evtl. könntest du ja auch ein string dir zusammenbasteln den du in nur wenige labels einfühgst, also zum beispiel zeilenweise.

                          mf

                          Comment


                          • #14
                            Hallo Francesco,

                            auch ich verstehe Dein Problem nicht wirklich. Jan hat recht, warum dann nicht so:

                            <code>
                            JPanel aPanel = new JPanel();

                            JLabel l;
                            for(i=0; i< quellArray.length;i++) {
                            l = new JLabel(quellArray[i]);
                            l.setDies();
                            l.tueDas();
                            ...
                            aPanel.add(l);
                            }
                            </code>

                            Versuch bitte Dein Problem konkreter zu beschreiben

                            Comment

                            Working...
                            X