正常情况下,在Java中入参是不建议用做返回值的。除了造成代码不易理解、语义不清等问题外,可能还埋下了陷阱等你入坑。问题背景比如有这么一段代码:上面代码,服务A希望调用服务B,以获取supplyList,但同时,服务A又希望修改localSupply的状态值,未能避免修改calcSupplyAssignment接口的,将localSupply作为了入参但同时也用作了返回值。服务B代码如下:在服务B代码内部,服务A的入参localSupply被传入,希望重新被supplyAssignment赋值而后返回新值。然而,这样做是无效的。问题原因先来看下编程语言中关于参数传递的类型:。因为Java程序设计语言是采用的值传递,因为Java没有指针的概念。这意味着我们是修改的B的参数localSupply上的属性,而并未新建对象。
暂无评论