java中初始化并返回一个字节数组

2024-05-11

在我的代码中,我必须将一个 bye 数组 (byte[] temp = null;) 传递给 函数在其内部分配并填充数据。后 从函数返回它仍然为空。我怎样才能找到一个 解决这个问题。???请帮我。

  byte[] temp = null;
  ret = foo(temp);

  boolean foo(byte[] temp)
  {
      temp = new byte[];
      //fill array
  }

您对您的代码不太清楚,但如果我理解正确的话,您会得到类似以下内容的内容:

byte[] temp = null;
methodThatAllocatesByteArray(temp);
// temp is still null.

如果这是对您所说内容的正确理解,那么问题在于 temp 没有引用任何内容。将该引用发送到另一个方法会生成该引用的副本(而不是使用相同的引用),因此,更改该引用(分配给参数变量)只会更改本地方法的引用。你需要做的是返回一个新的byte[]从这样的方法:

public byte[] methodThatAllocatesByteArray() {
    // create and populate array.
    return array;
}

并这样称呼它:byte[] temp = methodThatAllocatesByteArray()。或者您可以先初始化数组,然后将该数组的引用传递给其他方法,如下所示:

byte[] temp = new byte[size];
methodThatAllocatesByteArray(temp);

因为在这种情况下参数methodThatAllocatesByteArray将指向相同的数组temp,对其进行的任何更改(除了将其重新分配给不同的数组或 null 之外)都可以通过temp.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java中初始化并返回一个字节数组 的相关文章

随机推荐