如果我修改某个方法,是否需要从该方法返回一个对象?

Env*_*vin 5 java

说我有代码

if(some statement){
   object1.setSomeField("abc");
}
Run Code Online (Sandbox Code Playgroud)

我可以这样做吗?

    public void methodToSetField(SomeObject object1){
       //provide some logic for setting
       object1.setSomeField("abc")
    }

   if(some statement){
      this.methodToSetField(object1);
   }
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如果我想用该方法替换第一段代码,我需要返回object1还是设置它就足够了。

Jun*_*san 6

不,你不必这样做,因为你正在处理同一个内存对象。因此,调用代码如果在调用您的方法后使用这些值,它应该会看到更新。


Ben*_*ale 3

这样做很好。在java中,当你传入一个对象时,你实际上并不是传入“对象”,而是传入该对象的引用(或指针)。

只要您不执行以下操作,您所做的任何修改都会直接更改您传入的对象:

SomeObject someObject = new SomeObject();
Run Code Online (Sandbox Code Playgroud)

编辑: Java是“按引用传递”还是“按值传递”?