这可能是一个有明显答案的问题。我只是看不到它,当有人向我明确指出时,它可能会感觉很小。
我在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中遇到了一个编译错误,说“类型Arrays的方法copyOf(byte [],int)是未定义的。
任何人都可以建议我做错了吗?
答案 0 :(得分:1)
Arrays.copyOf(byte[], int)
。在您提供的链接上,查看右上角,您会看到一个“按API级别过滤”的复选框。选择7
会删除该方法。
为什么你还在使用数组呢?在Java中,除非遇到性能问题,否则几乎总是使用ArrayList
。在这种情况下,您根本不必担心阵列的大小。如果您的函数必须接受byte[]
参数,那么我建议您调用类似List<Byte> myList = Arrays.asList(plain)
的内容。