2012-08-22 6 views
8

可能な重複VS:
Why is String.length() a method?
Java - Array's length propertyString.lengthです()Array.lengthと

は、文字列の長さのための方法を持っている理由として、具体的な設計/性能理由がありましたArrayには可変長がありますか?

+3

関連:http://stackoverflow.com/questions/9297899/java-arrays-length-property – birryree

+1

関連するhttp://stackoverflow.com/questions/8720220 –

+0

これは最終的な公共財ではありません。実際には、近い将来、特別な「長さ」フィールドを持たない実装に置き換えることができるという兆候があります。 –

答えて

6

Java(リフレクション以外のもの)にはArrayクラスはありません。配列はJavaのソートの「プリミティブ」であり、宣言されたクラスとは異なるルールで動作します。

確かにlength()メソッドが配列で定義されている可能性がありますが、デザイナーはlengthを擬似メソッドではなくプロパティとして保持したいと考えました。 (部分的には、Java実装の初期段階では、これがより簡単になった可能性があります)。その理由は、歴史にはいくらか埋もれています。

(より良い質問は、Javaが「長さ」、「カウント」、または「サイズ」という概念を呼び出すかどうかを判断できない理由です) - 私はいつも、集計クラス)