当Object实际引用数组时,为什么java在方法声明中使用Object而不是T []

时间:2016-03-14 00:58:53

标签: java generics

我正在阅读有关System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)方法的Oracle java API文档。当src / dest参数引用不是数组的对象时,抛出ArrayStoreException。那么可以在方法声明中使用数组或T []吗?类似的东西:

System.arraycopy(Arrays src, int srcPos, Arrays dest, int destPos, int length)

System.arraycopy(T[] src, int srcPos, T[] dest, int destPos, int length)

1 个答案:

答案 0 :(得分:1)

System.arraycopy()可用于两个基元数组和引用数组。 T[]只能与引用数组一起使用 - T表示引用类型。两个基本类型数组和引用数组类型的唯一超类型是Object(嗯,有一些接口,如CloneableSerializable,它们也是所有数组的超类型类型,但它们不合适。)