Java: массив Копии нетипа примитива

Как упомянуто здесь Суетливый Козлобородник это, кажется, ошибка из сценария личинки обновления с запасным устройством в одном из RAID-массивов. Как упомянуто здесь патч был применен и должен прийти к Ubuntu в некоторое время.

Boyd Stephen Smith Jr. сказал, что думает, что это сообщение об ошибке может быть просто косметическое здесь и , Vladimir 'П †-coder/phcoder' Serbinenko отправил патч , который, кажется, просто изменяется, сообщение об ошибке к "запчастям не реализованы".

Также существует отчет об ошибках в панели запуска ( #816475) и возможное обходное решение , который включает изменение разделения. Важность этой ошибки не решена в панели запуска, но похожа на нее, вызвал некоторую настоящую проблему к [1 110] BjГ¶rn Tillenius, который не мог обновить/установить личинку. Так похож на Вас, должно быть осторожным.

8
задан desolat 2 September 2009 в 07:39
поделиться

2 ответа

Старый способ был:

public static void java.lang.System.arraycopy(Object src, int srcPos, 
         Object dest, int destPos, int length)

Копирование из одного существующего массива в другой. Вы должны выделить новый массив самостоятельно ... при условии, что вы создаете копию массива.

Начиная с JDK 6 и далее, класс java.util.Arrays имеет ряд методов copyOf для создания копий массивов нового размера. Имеются следующие значения:

public static <T> T[] copyOf(T[] original, int newLength)

и

public static <T,U> T[] copyOf(U[] original, int newLength,
         Class<? extends T[]> newType)

Этот первый делает копию с использованием исходного типа массива, а второй делает копию с другим типом массива.

Обратите внимание, что и arraycopy, и аргумент 3 copyOf должен проверять типы каждого из элементов в исходном (исходном) массиве по типу целевого массива. Таким образом, оба могут генерировать исключения типа. 2 аргумента copyOf (по крайней мере теоретически) не требует проверки типов и, следовательно, должен быть (теоретически) быстрее. На практике относительная производительность будет зависеть от реализации. Например, JVM часто обрабатывает массив arraycopy .

7
ответ дан 5 December 2019 в 07:59
поделиться
System.arraycopy

(что дает вам возможность копировать произвольные части массива с помощью параметров offset и length ). Или

java.util.Arrays.copyOf

, который был добавлен в JDK 6 и является универсальным методом, поэтому его можно использовать:

Integer[] is = new Integer[] { 4, 6 }
Integer[] copy = Arrays.copyOf(is, is.length);

Или он может сузить тип:

Number[] is = new Number[]{4, 5};
Integer[] copy = Arrays.copyOf(is, is.length, Integer[].class);

Обратите внимание, что вы также можете использовать метод clone в массиве:

Number[] other = is.clone();
14
ответ дан 5 December 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: