Ответ 1
Это проблема с компилятором /IDE. Однако Arrays.copyOf
является довольно тривиальной функцией, поэтому просто напишите свою собственную версию, если проблема не может быть исправлена с помощью обновлений IDE/компилятора. Другой способ - использовать отражение, чтобы называть его. Но это связано с некоторыми издержками времени исполнения, а также делает код неудобным, поэтому я предлагаю реализовать свою собственную версию.
Вот код:
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
Конечно, если вы затем получите ту же проблему для System.arraycopy
, то это не сработает. Просто попробуйте. Если это не сработает, вы можете поместить его в класс-помощник и использовать компилятор без ошибок для компиляции этого вспомогательного класса.