我发现类Arrays
中的方法sort()
由于参数类型不同,但有些逻辑是相同的。
如参数为long
时,方法与参数为Integer
相同。那么重载该方法有什么意义呢?换句话说,代码可能更短,但为什么设计得这么长?
最佳答案
when the parameter is long ,the method is the same as the parameter is integer.
不是int
和long
,而是int[]
和long[]
。这一点很重要。
例如,int
和 long
存在扩大的基元转换。
int i = 10;
long l = i;
但是,int[]
和 long[]
是完全不同的类型,并且不支持类似的便捷转换。为了将 int[]
传递给 method(long[])
,您必须将 int[]
转换为 >手动长[]
。
int[] iA = {10, 10};
long[] lA = Arrays.stream(iA).asLongStream().toArray();
从一个好的API的角度来看,这并不方便。其想法是让用户使用他们最初获得的类型,而不是强制他们进行手动(通常容易出错)转换。所以重点是方便。
关于java - 类 Arrays 中重载方法 sort 的意义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55850923/