Erste Schritte Warum wird bei einem Array die Länge über Length ausgegeben?

Der direkte Zugriff auf das Feld length (length ist keine Methode) ist von den Entwicklern des JDK mal so festgelegt worden. Wahrscheinlich, bevor die Bean-Konvention eingeführt wurde. Danach haben sie es nicht mehr geändert, weil sonst bestehender Code nicht mehr funktionieren würde. Gleiches gibt es bei sehr vielen Accessor-Methoden, z.B. size() statt getSize() bei Collections.
 
Zuletzt bearbeitet von einem Moderator:
Ein Array ist ja auch kein eigentlicher Datentyp sondern nur ein Speicherbereich. Wer mal C programmiert hat, weis dass die .length Eigenschaft von java arrays ja eine echte Luxus-/Komfortfunktion ist.
Es spräche schließlich nichts dagegen, sich die Größe des Arrays in einer eigenen Variable zu speichern, nur java kümmert sich ja von selber darum. Eine der ersten Sachen bei denen gejubelt habe, als ich java lernte 😀
 
Zuletzt bearbeitet:
tfa hat gesagt.:
Sachen wie size und length sind jetzt auch nicht gerade mit den Properties einer Bean vergleichbar.
Da gebe ich Dir sogar Recht. Ein Array und eine Liste sind eben nicht nur ein Objekt, dass einen inneren Zustand (ein paar lokale Membervariablen) hat. Darum kann man sie nicht als Bean auffassen.

Aber die Konvention mit getXXX() (bzw. isXXX() bei booleans) lesend auf Werte zuzugreifen ist so naheliegend, dass man sie sich auch für Nicht-Beans vorstellen könnte. Wenn man jetzt noch bedenkt, dass viele Frameworks mit Expressions arbeiten, die intern in den Aufruf von getXXX umgesetzt werden, wäre es schön, wenn es getLength(), getSize() etc. gäbe.
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben