好奇:
有人知道为什么方法System.arraycopy
使用Object
作为src
和dest
的类型?完全可以使用Object[]
代替吗?
为什么定义:
arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
而不是
arraycopy(Object[] src, int srcPos, Object[] dest, int destPos, int length)
答案 0 :(得分:20)
boolean[]
和double[]
这样的原始数组类型不会扩展Object[]
,但会扩展Object
此方法允许您复制任何类型的数组,因此类型为Object。
int[] a =
int[] b =
System.arraycopy(a, 0, b, 0, a.length);
答案 1 :(得分:1)
如果它具有Object[]
的版本,并且每个p[]
,其中p是基元,则会更加静态地输入。就像Arrays
类中的众多重载方法一样。
System.arraycopy
的作者要么懒惰,要么不喜欢API中的混乱。