为什么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
指令
作为答案为什么?
我发现它很有用,易于记忆,使用和友好,
参考链接:
https://stackoverflow.com/questions/1965500/length-and-length-in-java#
https://www.programcreek.com/2013/11/start-from-length-length-in-java/
网友评论