为什么Java中要有length和length(),都是用length不可以吗?
length: 数组(int[],double[],String[]),用来获取数组的长度
length(): 字符串相关(String,StringBuilder等),用来获取String的长度
size(): 集合Collection(ArrayList,HashSet等),用来获取Collection的大小
首先来说说length和size():
length不是一种方法,所以完全有意义的是它不能用于对象,它只适用于数组。
size()它的名字描述得更好,因为它是一个方法,它将用于那些使用集合(集合框架)的对象
String不是一个原始数组(所以我们不能使用.length),也不是一个Collection (所以我们不能使用.size()),这就是为什么我们还需要一个不同的length(),保持差异并易于理解。
在代码中,我们看到一个对象在调用length,就很容易知道他是一个数组,而不用跳到对象声明处查看她的类型。
另外,数组的length既不是属性也不是方法,在数组对象上调用length,会被变异成一条arrayLength指令,二访问字段会被编译为getField或getStatic指令
作为答案为什么?
我发现它很有用,易于记忆,使用和友好,
参考链接:
stackoverflow.com/questions/1…
www.programcreek.com/2013/11/sta…