8

重複の可能性:
String.length() がメソッドであるのはなぜですか?
Java - 配列の長さプロパティ

String には長さのメソッドがあり、Array には可変長がある理由について、特定の設計/パフォーマンス上の理由がありましたか?

4

1 に答える 1

8

ArrayJava には (リフレクションを除いて) クラスはありません。配列は Java の一種の「プリミティブ」であり、宣言されたクラスとは異なる規則に従って機能します。

確かに配列に対してメソッドを定義することもできましたが、設計者は疑似メソッドではなくプロパティとしてlength()保持したいと考えていました。length(部分的には、これにより初期の Java 実装が容易になった可能性があります。) その理由は、歴史の中にいくらか埋もれています。

(より適切な質問は、Java が概念を「長さ」、「カウント」、または「サイズ」と呼ぶかどうかを決定できなかった理由です。集約クラスの適切な概念を見つける前に、私は常に 3 つすべてを試してしまいます。)

于 2012-08-22T22:44:00.410 に答える