8

Possible Duplicate:
Why is String.length() a method?
Java - Array's length property

Was there a specific design/performance reason as to why String has a method for length but Array has a variable length?

4
  • 3
    Related: stackoverflow.com/questions/9297899/java-arrays-length-property Commented Aug 22, 2012 at 22:19
  • 1
    Also related stackoverflow.com/questions/8720220 Commented Aug 22, 2012 at 22:25
  • It's not a final public property because differing implementations exist -- indeed, there are indications that the current implementation may indeed be replaced by one without a special length field in the near future. Commented Aug 22, 2012 at 22:28
  • If you have a CharSequence reference variable pointing to a String, you couldn't get the length of it if length was a field because fields aren't defined by interfaces. But arrays don't implement interfaces so length being a field is fine. Commented Nov 22, 2014 at 16:55

1 Answer 1

8

There is no Array class in Java (other than in reflections). Arrays are "primitives" of a sort in Java and play by different rules from declared classes.

Certainly a length() method could have been defined on arrays, but the designers wanted to keep length as a property rather than a pseudo-method. (In part this may have made it easier for early Java implementations.) The reasons are somewhat buried in history.

(A better question is why Java couldn't decide whether to call the concept "length", "count", or "size" -- I always end up trying all three before I hit on the right one for an aggregating class.)

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.