Java Practice:返回作为参数传递的相同对象

前端之家收集整理的这篇文章主要介绍了Java Practice:返回作为参数传递的相同对象前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在下面的代码中,updateWithContex返回与参数相同的对象是不是很糟糕?
class SomeClass{
   Foo updateWithContex(Foo foo){
       foo.setAppId(i);
       foo.setXId(index);
       //.....
       return foo;
   }
}

class Foo{

    public void setAppId(int appId)
    {
       //
    }
    public void setXId(int appId)
    {
        //
    }
    public void changeState(X x)
    {
       //
    }
}

在C中,我看到过这样的代码

BigObject&
   fastTransform( BigObject& myBO )
   {
      // When entering fastTransform(),myBO is the same object as the function
      // argument provided by the user. -> No copy-constructor is executed.
      // Transform myBO in some way
      return myBO;   // Transformed myBO is returned to the user.
   }

这也错了吗?

解决方法

返回一个对象将建议您的API用户不会更改传入的对象,而是返回一个新的修改对象.为了清楚说明情况并非如此,我建议将返回类型更改为void.
原文链接:https://www.f2er.com/java/127347.html

猜你在找的Java相关文章