java - 数组中的长度和字符串中的 length()

标签 java arrays string

为什么说数组的时候length是数据域,说String的时候是length()?意思是:

int a[10] = {1,2,3,4,5,6,7,8,9,10};
String str = "foo";
int a_len = a.length;
int str_len = str.length();

为什么长度不是数组的函数,反之亦然?

最佳答案

简单地说:就是这样,而且一直都是这样。

JLS section 10.7 中指定该数组有一个公共(public)的最终 length 字段。为了保持一致性,它本可以被指定为一种方法 - 但它并不是......同样 String 可以 做出实现决定以拥有一个 public final length 字段 - 但同样,它恰好不是那样。

自 1.0 以来存在一些不一致的地方 - 显然这些东西在发布后确实无法更改......

关于java - 数组中的长度和字符串中的 length(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12939994/

相关文章:

python - 如何使用 Python `string.find()` 找到段落的边界?

java - 从另一个类通知java线程

java - Getter、Setter、对象 Java

java - 如何正确解码传递给 servlet 的 unicode 参数

java - 如何在Java中使用LWJGL实现扁平化外观(无标题栏)?

java - "Variable Might not have bee initialized."声明的数组变量发生错误

java - 获取 Fasterxml Jackson ArrayNode 的子数组

java - 如果不支持添加或删除元素,将 Array 转换为 ArrayList 有什么用?

java - 检查字符串是否在列表中的最优雅/惯用的方法是什么?

java - 在 Java 中检查一组字符串中的包含