最近针对之前写的代码进行了优化,原来的一个方法上千行代码,现在根据相同的业务属性进行了提取分类。由于业务十分复杂,涉及到的各种数据字典较多,所以就存在很多数据处理和数据传递,如下图。抽取出来的方法参数非常多,如果按照常规的想法,就需要每个参数指定一个返回值,汇总到一个Map中,再将Map作为返回值传递出去。那么问题就来了,这么多参数,类型有List、Map且较为复杂,如果再用一个Map接收,还需要做数据类型转换非常的麻烦,可能还会产生新的问题。
针对这种情况,完全可以采用java的引用传值,也就是不用返回值,直接用入参作为返回值,这样就省了返回值处理和接收的步骤。
参考资料《堆栈详解 + 彻底理解JAVA的值传递和引用传递》
注意事项:
1、入参不能为null,一定要先实例化,否则传递的就是null值,而不是对象的引用地址。
2、在方法内部,不能对形参进行重新赋值引用操作,比如用=重新赋值,否则就会修改引用地址。
3、使用List、Map的形参,进行处理数据时,可以使用Add、putAll等方法修改内容,而不是使用=重新赋值。
还没有评论,来说两句吧...