Подтвердить что ты не робот

Почему "System.arraycopy" использует "Object" вместо "Object []"?

Просто любопытно:

Кто-нибудь знает, почему метод 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)

?

4b9b3361

Ответ 1

Примитивные типы массивов, такие как boolean[] и double[], не расширяют Object[], но они расширяют Object

Этот метод позволяет скопировать любой тип массива, поэтому тип - Object.

int[] a =
int[] b =
System.arraycopy(a, 0, b, 0, a.length);

Ответ 2

Он был бы более статически типизирован, если он имеет версию для Object[] и каждый p[], где p - примитив. Как и многочисленные методы перегрузки в классе Arrays.

Автор System.arraycopy либо ленился, либо не любил беспорядок в API.