WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.05.2007, 08:58   #1
sesselhocker
Senior Member
 
Registriert seit: 05.08.2005
Beiträge: 181


Standard Java: java.lang.reflect.Array.length?

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
sesselhocker ist offline   Mit Zitat antworten
Alt 24.05.2007, 11:36   #2
void
Hero
 
Benutzerbild von void
 
Registriert seit: 26.07.2001
Ort: Wien
Beiträge: 811


Standard Re: Java: java.lang.reflect.Array.length?

Zitat:
Original geschrieben von sesselhocker
[...] aber jeder benutzt es. [...]
meinst du wirklich "java.lang.reflect.Array.length"?
____________________________________
nobody is perfect
void ist offline   Mit Zitat antworten
Alt 24.05.2007, 19:05   #3
sesselhocker
Senior Member
 
Registriert seit: 05.08.2005
Beiträge: 181


Standard

Hmmm sagen wir mal anders: Wo wird das length-Feld gespeichert (in einer Instanz welcher Klasse)?

mfg, sesselhocker
sesselhocker ist offline   Mit Zitat antworten
Alt 25.05.2007, 10:29   #4
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

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)
jak ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:07 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag