不能使用Arrays.copyOfRange

我似乎无法在Eclipse Indigo 3.7.1的Android项目中访问Arrays.copyOfRange在Ubuntu 11.10上。

我的JRE是我认为包括Arrays.copyOfRange的java-6-openjdk

例如,如果我有这个代码:

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

Eclipse告诉我

方法copyOfRange(int[], int, int)对于Arraystypes是未定义的

我不明白,因为Android参考数组包括此数组的方法。

有任何想法吗?

Solutions Collecting From Web of "不能使用Arrays.copyOfRange"

直到API级别9才引入Arrays.copyOfRange()方法。 确保你使用的是最低的SDK。

另外,您索引不正确。 在Java中,如果您有一个大小为5的数组,索引范围从0->4

将您的代码更改为:

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

如果您需要使用超过9的API,则在API级别1中添加System.arraycopy和Math.min,以便您可以复制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已经引入到Java 6的Arrays类中.Android基于Java 5.你不能在Android中使用Java 6方法或类。