String.length () vs Array.length [doppelt]

8

Gab es einen bestimmten Design / Performance-Grund, warum String eine Methode für die Länge hat, aber Array eine variable Länge hat?

    
Chander Shivdasani 22.08.2012, 22:17
quelle

1 Antwort

7

Es gibt keine Array -Klasse in Java (anders als in Reflexionen). Arrays sind "Primitive" einer Art in Java und spielen nach anderen Regeln als deklarierte Klassen.

Sicherlich könnte eine length() -Methode für Arrays definiert worden sein, aber die Designer wollten length als Eigenschaft und nicht als Pseudo-Methode beibehalten. (Dies könnte zum Teil frühere Java-Implementierungen erleichtert haben.) Die Gründe sind in der Geschichte etwas vergraben.

(Eine bessere Frage ist, warum Java nicht entscheiden konnte, ob man das Konzept "length", "count" oder "size" nennen möchte - ich versuche immer alle drei zu testen, bevor ich auf das richtige setze, um zu aggregieren Klasse.)

    
Hot Licks 22.08.2012 22:44
quelle

Tags und Links