说我有代码
if(some statement){
object1.setSomeField("abc");
}
我可以这样做吗?
public void methodToSetField(SomeObject object1){
//provide some logic for setting
object1.setSomeField("abc")
}
if(some statement){
this.methodToSetField(object1);
}
现在我的问题是, 如果我想替换第一段代码,使用该方法我需要返回object1还是足以设置它。
答案 0 :(得分:2)
不,你不必,因为你正在处理相同的内存对象。所以调用代码,如果在调用方法后使用值,它应该看到更新。
答案 1 :(得分:1)
您正在传递object1
的引用,因此无需返回它。它会发生变化。
请参阅以下代码:
public void methodToSetField(SomeObject object1){
//provide some logic for setting
object1.setSomeField("abc")
}
这个
public object1Type methodToSetField(SomeObject object1){
//provide some logic for setting
object1.setSomeField("abc");
return object1;
}
在这两种情况下,执行代码object1
更新后。
所以僵尸线是,不需要return
。
答案 2 :(得分:1)
这样做很好。在java中,当你传入一个对象时,你实际上并没有传入“对象”,而是传递给对象的引用(或指针)。
只要您不执行以下操作,您所做的任何修改都将直接改变您传入的对象:
SomeObject someObject = new SomeObject();
答案 3 :(得分:0)
它将起作用,因为在传递处理同一对象时引用的对象的地址位置的副本。