1

这可能是一个答案非常明显的问题。我只是看不到它,当有人清楚地向我指出时,我可能会感到非常渺小。

我在 Eclair MR1 级别使用 Android,所以我的 Android Manifest 有:

<uses-sdk android:minSdkVersion="7" />

在我的 MainActivity 中,我有一个 byte[] 我想重新分配到更大的大小。

Java SE 6 的 java.util.Arrays 类具有静态方法,可以为每种基本类型执行此操作。我可以在http://developer.android.com/reference/java/util/Arrays.html#copyOf%28byte[],%20int%29的 android 文档中看到该类

这是我的代码:

    byte [] padToLength (byte[] plain) {

    try{
        byte[] plainpad2 = java.util.Arrays.copyOf(plain, plain.length+10);  //why won't this compile?
    } catch (Exception e) {

    }

但是当我使用它时,我在 Eclipse 中得到一个编译错误,说“方法 copyOf(byte[], int) 未定义类型数组。

谁能建议我做错了什么?

4

1 回答 1

1

Arrays.copyOf(byte[], int)没有为 API 级别 7 定义。在您提供的链接中,查看右上角,您会看到一个显示“按 API 级别过滤”的复选框。选择7删除该方法。

你为什么要使用数组呢?ArrayList在 Java 中,除非遇到性能问题,否则几乎应该一直使用。在这种情况下,您根本不必担心数组的大小。如果您的函数必须接受byte[]参数,那么我建议调用类似List<Byte> myList = Arrays.asList(plain).

于 2012-04-20T03:04:06.853 回答