Не может использовать Arrays.copyOfRange

Кажется, я не могу получить доступ к Arrays.copyOfRange в своем Android-проекте в Eclipse Indigo 3.7.1. На Ubuntu 11.10.

Мой JRE – java-6-openjdk, который, как я думал, включал Arrays.copyOfRange

Например, если у меня есть этот код:

int[] debug = new int[5]; int[] x = Arrays.copyOfRange(debug,0,4); 

Затмение говорит мне

Метод copyOfRange(int[], int, int) не определен для типа Arrays

Я не понимаю, потому что в массиве массивов Android этот метод используется для массивов.

Есть идеи?

Solutions Collecting From Web of "Не может использовать Arrays.copyOfRange"

Метод Arrays.copyOfRange() не был введен до уровня API 9 . Убедитесь, что вы используете это как минимальный SDK.

Кроме того, вы неправильно индексируете. В java, если у вас есть массив размером 5 индексы варьируются от 0->4

Измените свой код на это:

 int[] debug = new int[5]; int[] x = Arrays.copyOfRange(debug,0,4); // use 4 instead of 5 

Если вам нужно использовать API старше 9, System.arraycopy и Math.min были добавлены в уровень API 1, поэтому вы можете скопировать функцию copyOf и использовать ее в своем коде.

 public static byte[] copyOf(byte[] original, int newLength) { byte[] copy = new byte[newLength]; System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; } 

Arrays.copyOfRange был представлен классу Arrays с Java 6. Android основан на Java 5. Вы не можете использовать Java 6 методы или классы с Android.