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;
Ist allerdings nur meine Annahme. Wenn dich wirklich interessiert wie die Klasse implementiert ist, kannst du dir entweder den Sourcecode herunterladen, oder den JBuilder von Borland verwenden (es gibt einee Personal Edition die gratis ist), der hat einen eingebauten decompiler, mit dem man sich ebenfalls den Java Source anschauen kann.
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)