所以我有功能
public Foo findVariable(Foo input)
返回Foo类型的对象。我想获取该对象,然后在返回后在findVariable
中修改它。我已经读过你不能通过Java引用传递,所以它可以有:
public void func1() {
Foo o = new Foo();
Foo exp = findVariable(o);
Foo newExp = new Foo(somethingDifferent);
exp = newExp;
}
我想要的是将findVariable返回的Foo对象更改为对象newExp。对不起,如果这是不可能的,或者很简单,但我找不到我用过的搜索方法。谢谢!
答案 0 :(得分:2)
您可以改变Foo
中findVariable
返回的func1
:
public void func1() {
Foo o = new Foo();
Foo exp = findVariable(o);
exp.setSomething(different);
}
但如果你这样做:
List<Foo> foosHandedOutByMe = ...
public Foo findVariable(Foo foo) {
Foo f = new Foo();
foosHandedOutByMe.add(f);
return f;
}
然后致电:
public void func1() {
Foo o = new Foo();
Foo exp = findVariable(o);
Foo newFoo = new Foo(SomethingDifferent);
exp = newFoo;
}
foosHandedOutByMe
列表中没有newFoo
对象。