java中为什么要有两个length和length()-

72 阅读1分钟

为什么Java中要有length和length(),都是用length不可以吗?

length: 数组(int[],double[],String[]),用来获取数组的长度 length(): 字符串相关(StringStringBuilder等),用来获取String的长度 size(): 集合CollectionArrayListHashSet等),用来获取Collection的大小

首先来说说lengthsize():

length不是一种方法,所以完全有意义的是它不能用于对象,它只适用于数组。 size()它的名字描述得更好,因为它是一个方法,它将用于那些使用集合(集合框架)的对象 String不是一个原始数组(所以我们不能使用.length),也不是一个Collection (所以我们不能使用.size()),这就是为什么我们还需要一个不同的length(),保持差异并易于理解。

在代码中,我们看到一个对象在调用length,就很容易知道他是一个数组,而不用跳到对象声明处查看她的类型。

另外,数组的length既不是属性也不是方法,在数组对象上调用length,会被变异成一条arrayLength指令,二访问字段会被编译为getFieldgetStatic指令 作为答案为什么? 我发现它很有用,易于记忆,使用和友好, 参考链接: stackoverflow.com/questions/1… www.programcreek.com/2013/11/sta…