Java 使用引用传递来修改值,这样做好吗?

2021-10-15 15:49:23 +08:00
 zzfer

今天在代码审核的时候看到这么一段代码,在 setProjectInfo 方法没有返回内容,但在方法体内给 list set 了值,想了下,是 Java 引用类型可以改变参数的值,这样写确实可行

	if (!CollectionUtils.isEmpty(list)){
            cmService.setProjectInfo(list);
        }
    	return list;

但如果是我写同样的需求,肯定是返回类型是 list<>,然后结果 return 给 list 。我不知道哪种写法好,想问问大家

	if (!CollectionUtils.isEmpty(list)){
            list = cmService.setProjectInfo(list);
        }
    	return list;
3668 次点击
所在节点    程序员
24 条回复
Vegetable
2021-10-15 23:39:32 +08:00
不要使用第二种
说实话这种内部的 list 就不该暴露出来
Vegetable
2021-10-15 23:40:34 +08:00
看错了,当我没说哈哈
VeryZero
2021-10-16 00:24:42 +08:00
第一种调用栈比较深的时候就很蛋疼了。维护过这种代码,简直折磨
husher123
2021-10-17 01:05:36 +08:00
虽然我也写过 1,但是更喜欢 2,可以链式调用 0.0

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/808054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX