Java - 按 Byte 对象的引用传递



我在这里读了一些代码:Java是"按引用传递"还是"按值传递"?

public void foo(Dog d)
{
  d.getName().equals("Max"); // true
  d.setName("Fifi");
}
Dog aDog = new Dog("Max");
foo(aDog);
aDog.getName().equals("Fifi"); // true

我可以对Byte对象执行相同的操作吗?我正处于代码的这一点上,想知道如何"设置"字节对象的值?

如果我使用 = 赋值运算符,它似乎执行了new Byte()自动装箱?! 因此该值不会传回。

有什么想法吗?问候。

Byte是不

可变的,这意味着它的值不能改变。分配给它在您的情况下不起作用,因为这只会重新绑定引用(不会传播回调用方)。

您可以使用 MutableByte 、单元素byte/Byte数组或自定义类。

前面的答案是正确的,但只是补充 - 是的,在这种情况下,Byte 对象是通过引用传递的。但是,由于 Byte 对象是不可变的,即使它是通过引用传递的,因此无法对其进行修改。

更具体地说,当您调用函数时,函数中的参数是按值传递的,但是当您传递对象时,您实际通过值传递的是对该对象的引用。

最新更新