【发布时间】:2021-03-24 01:53:02
【问题描述】:
在下面的代码中,我遇到了一个经典的 Java 值传递问题(写在处理中;setup() == main)。
void setup()
{
A a = new A();
a.makeTheB(a.b);
System.out.println(a.b); //Returns null
}
class A
{
B b;
public void makeTheB(B tempB)
{
tempB = new B();
}
}
class B
{
float x; //not used
}
谁有什么巧妙的技巧可以将新对象分配给作为参数传递的引用?
如果需要,我可以描述我的意图,但如果存在,我希望有一个笼统的答案。
编辑:看起来我需要描述我的意图。 我正在使用复合模式来创建对象的递归层次结构。我在该层次结构之外有一个对象,我想引用该层次结构中的一个对象。我想通过复合的责任链样式传递该对象,然后让该对象引用负责它的任何对象。
虽然我确定返回值,但我可以找到一种方法来实现这一点,但是如果有任何更简单的方法可以分配我传递给层次结构的参数,那肯定会很好。
【问题讨论】:
-
返回一个值而不是
void? -
在 A 构造函数中创建 B 并将其分配给字段。如果由于某种原因你不能这样做,请在 A 上创建一个 setter。
标签: java parameters parameter-passing pass-by-reference pass-by-value