给定这些参数我有一个方法
int read( byte result[], int offset, int size ) {
}
我需要从中调用不同的方法:
int read( byte result[], int length ) {
}
我知道如何在 C++ 中使用偏移量转换数组,但我不知道如何在 Java 中执行此操作。
最佳答案
你不能。您必须创建子数组的副本。
最简单的方法是使用 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;
}
关于Java byte[] 指针转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41023096/