Tom2: Welche Instanzvariablen hat ein Array?

Hallo Javaianer

Ich bin gerade dabei Java zu lernen und bin nun auf ein kleines Problem gestossen. Ich habe dazu auch schon eine Lösung im Kopf, nur kann ich sie noch nicht in Java niederschreiben. Und zwar geht es darum herauszufinden, wie viele Felder eines Arrays bereits belegt sind (ähnlich der Methode UBound() in VBScript).

Ich dachte, es könnte vielleicht eine Instanzvariable dazu geben, kam jedoch mit der Doku nicht zurecht. Dann wollte ich in der Doku nach der Instanzvariable 'length' suchen, die in meinem Buch beschrieben wird und anscheinend zur Klasse java.lang.reflect.Array gehört. Leider konnte ich in der Doku nur die Methoden dieser Klasse finden, nicht aber die Instanzvariablen.

Zwei Seiten weiter in meinem Buch wäre die Lösung, mein Ego will aber nicht weiterblättern und das Problem alleine lösen. Desshalb:
Kann mir jemand sagen, wie ich herausbekomme welche Instanzvariablen ein Objekt der Klassen aus der Standardbibliothek hat?

MfG und besten Dank

Tom2

  1. Kann mir jemand sagen, wie ich herausbekomme welche Instanzvariablen ein Objekt der Klassen aus der Standardbibliothek hat?

    Hallo!
    Das geht imho nicht mit der JDK-Doku. Dort steht ja auch z.B. nicht, wie eine Schleife funktioniert etc.
    Ich könnte da das Buch "Go To Java" empfehlen, dass es zum kostenlosen Download unter http://www.javabuch.de/download gibt.

  2. Hi,

    Ich dachte, es könnte vielleicht eine Instanzvariable dazu geben, kam jedoch mit der Doku nicht zurecht. Dann wollte ich in der Doku nach der Instanzvariable 'length' suchen, die in meinem Buch beschrieben wird und anscheinend zur Klasse java.lang.reflect.Array gehört. Leider konnte ich in der Doku nur die Methoden dieser Klasse finden, nicht aber die Instanzvariablen.

    Ich zitiere aus "Go to Java 2" (http://www.javabuch.de):
    Arrays sind »klassenlose« Objekte. Sie können ausschließlich vom Compiler erzeugt werden, besitzen aber keine explizite Klassendefinition. Dennoch haben sie eine öffentliche Instanzvariable length und werden vom Laufzeitsystem wie normale Objekte behandelt.

    Zwei Seiten weiter in meinem Buch wäre die Lösung, mein Ego will aber nicht weiterblättern und das Problem alleine lösen.´

    Ob das eine sinnvolle Strategie ist?

    Desshalb:
    Kann mir jemand sagen, wie ich herausbekomme welche Instanzvariablen ein Objekt der Klassen aus der Standardbibliothek hat?

    Du hast die Antwort bereits selbst angedeutet: Beschäftige Dich mit der sogenannten Reflection-API, die im package java.lang.reflect definiert ist.

    Viele Gruesse,
    Martin

    1. Hallo

      Ich zitiere aus "Go to Java 2" (http://www.javabuch.de):
      Arrays sind »klassenlose« Objekte. Sie können ausschließlich vom Compiler erzeugt werden, besitzen aber keine explizite Klassendefinition. Dennoch haben sie eine öffentliche Instanzvariable length und werden vom Laufzeitsystem wie normale Objekte behandelt.

      Was bedeutet, dass ich das in der Doku nicht finden werde?

      Zwei Seiten weiter in meinem Buch wäre die Lösung, mein Ego will aber nicht weiterblättern und das Problem alleine lösen.´
      Ob das eine sinnvolle Strategie ist?

      Das ist nicht die universelle Strategie von mir, ich wollte blos nicht nachschauen, weil ich den Lösungsweg kenne und ihn nur noch in Java umsetzen muss. Zudem muss ich ja auch lernen, wie man mit der Doku umgeht.

      Desshalb:
      Kann mir jemand sagen, wie ich herausbekomme welche Instanzvariablen ein Objekt der Klassen aus der Standardbibliothek hat?
      Du hast die Antwort bereits selbst angedeutet: Beschäftige Dich mit der sogenannten Reflection-API, die im package java.lang.reflect definiert ist.

      Ich habe bis jetzt noch nichts Brauchbares gefunden, werde mich jedoch weiter umsehen, ev auch meine Strategie überarbeiten ;-).

      MfG und bestem Dank

      Tom2