![]() |
![]() |
|
![]() |
![]() |
|
Registrieren | Hilfe/Forumregeln | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Senior Member
![]() Registriert seit: 05.08.2005
Beiträge: 181
|
![]() Hallo!
Hab mal wieder eine Frage zu Java: In der Dokumentation bei java.lang.reflect.Array steht nichts von einem length-Feld (jedoch eine static getLength()), aber jeder benutzt es. Gibt es dafür irgendeine Begründung? mfg, sesselhocker |
![]() |
![]() |
![]() |
#2 | |
Hero
![]() Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811
|
![]() Zitat:
____________________________________
nobody is perfect |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
![]() Registriert seit: 05.08.2005
Beiträge: 181
|
![]() Hmmm sagen wir mal anders: Wo wird das length-Feld gespeichert (in einer Instanz welcher Klasse)?
mfg, sesselhocker |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Nur mal aus dem Bauch heraus:
Ich nehme an, daß man jedes Array auf ein Object[] casten kann (in älteren Java Versionen könnte das z.B. bei int[] aber schiefgehen, Stichwort auto boxing/unboxing). Diese Instanz von Object[] hat dann natürlich eine "length" Eigenschaft. Die Methoden die java.lang.reflect.Array anbietet sind statische Methoden, die eine Instanz als Argument erwarten. Ich nehme an, daß dort auch nichts anderes gemacht wird als etwas der Form Code:
public static int getLength(Object array) try{ Object[] obj_arr = (Object[]) array; return obj_arr.length; } catch ClassCastException cce { throw new IllegalArgumentException(...); } andere Möglichkeit: if(!array instanceof Object[]) throw new IllegalArgumentException(...); return ((Object[]) array).length; jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|