为什么我们在Java中调用Array.length方法时不使用括号()?



当我们对字符串使用length方法时,我们会使用括号,如:

String message = "Hello World";
System.out.println(message.length());

但是当我们对Arrays使用相同的方法时,我们不使用括号

int [] numbers = {1,2,3,4,5};
System.out.println(numbers.length);

我们在所有其他方法中都使用括号,但在这个方法中没有,为什么会这样?

它不是一个方法。它是一个成员变量。它可以像这样访问,因为它是公共的和最终的。由于它是最终的,所以不能更改它,从而使数组无效。这可以追溯到java的早期。

说明

为什么在Java中调用Array.length方法时不使用括号()?

原因很简单。它不是一个方法,只是一个公共字段。


示例

就像你会写一个这样的类:

public class MyArray {
public final int length;
...
}

然后像

MyArray array = ...
System.out.println(array.length);

(这是一个人为的例子,但你明白了)


详细信息

请注意,数组是直接在JVM中实现的,而不仅仅是类似的简单类。length也是如此。

但这些细节在实践中并不重要,语言设计者选择的语法是常规public final int length字段的语法。

最新更新