不能使用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参考数组包括此数组的方法。

有任何想法吗?

  • 如何从一个代码库创build多个Android应用程序
  • 意外的顶级例外:java.lang.IllegalArgumentException:已经添加
  • 安装后无法看到Android SDK Manager选项; 以管理员身份运行无法解决
  • java.lang.NoClassDefFoundError:com.google.ads.AdView
  • 在Eclipse中,是否有可能在项目中find所有采用某种参数types的方法?
  • Eclipse不会让我的应用程序运行
  • 设备上的Galaxy Tabdebugging?
  • LG在Windows上无法识别LG G3设备
  • 直到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方法或类。