Java中的更改返回对象
所以我有这个函数Java中的更改返回对象,java,reference,return-value,Java,Reference,Return Value,所以我有这个函数 public Foo findVariable(Foo input) 返回Foo类型的对象。我想获取该对象,然后在返回后在中修改它。我已经了解到Java中不能通过引用传递,因此是否可以: public void func1() { Foo o = new Foo(); Foo exp = findVariable(o); Foo newExp = new Foo(somethingDifferent); exp = newExp; } 我
public Foo findVariable(Foo input)
返回Foo类型的对象。我想获取该对象,然后在返回后在中修改它。我已经了解到Java中不能通过引用传递,因此是否可以:
public void func1() {
Foo o = new Foo();
Foo exp = findVariable(o);
Foo newExp = new Foo(somethingDifferent);
exp = newExp;
}
我想要的是findVariable返回的Foo对象被更改为对象newExp。很抱歉,如果这是不可能的,或者很简单,但我无法从我使用的搜索方法中找到它。谢谢 您可以在
func1
中对findVariable
返回的Foo
进行变异:
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;
}
foosHandedOutByMe
列表将不会有newFoo
对象。除了不一定定义不同的东西之外,这或多或少会起作用,但我看不出有什么意义。最后,您只是用newExp
覆盖exp
。所以我只需要一个对象类型Foo的函数,它将对象更改为?我就是不能用“=”?
public void func1() {
Foo o = new Foo();
Foo exp = findVariable(o);
Foo newFoo = new Foo(SomethingDifferent);
exp = newFoo;
}