我有一个给出这些参数的方法
int read( byte result[], int offset, int size ) {
}
我需要从中调用另一种方法:
int read( byte result[], int length ) {
}
我知道如何使用偏移量在C ++中转换数组,但我不知道如何在Java中执行此操作。
答案 0 :(得分:1)
你做不到。您必须创建子数组的副本。
最简单的方法是使用Arrays.copyOfRange(xxx[] original, int from, int to)
方法之一,其中xxx
是基本类型或任何对象类型。
如果需要,您可以使用System.arraycopy()
将更新的值复制回原始数组。
在你的情况下,参数实际上只是输出,所以你只需创建一个新数组,用它调用方法,然后将值复制到原始数组,例如
int read( byte result[], int offset, int size ) {
if (offset == 0)
return read(result, size);
byte[] buf = new byte[size];
int bytesRead = read(buf, size);
System.arraycopy(buf, 0, result, offset, bytesRead);
return bytesRead;
}