应该怎么修复这段代码让他不会造成引用覆盖呢?
时间: 2023-08-29 18:04:41 浏览: 31
为了避免引用覆盖的问题,应该在每次循环中都创建新的对象,而不是使用同一个对象。可以通过以下方式来修复问题:
```
public static List<ServiceFeeInfoDomain> doSplit(List<ServiceFeeInfoDomain> serviceFeeInfoDomains, String inputFinanceCode) {
List<ServiceFeeInfoDomain> feeInfoDomains = new ArrayList<>();
String[] split = inputFinanceCode.split("/");
for (ServiceFeeInfoDomain inputDomain : serviceFeeInfoDomains) {
for (String financeCode : split) {
ServiceFeeInfoDomain tempDomain = new ServiceFeeInfoDomain();
BeanUtils.copyProperties(inputDomain, tempDomain);
tempDomain.setFinanceCode(financeCode.trim());
feeInfoDomains.add(tempDomain);
}
}
return feeInfoDomains;
}
```
这段修复后的代码将会创建新的对象,将输入的 `inputDomain` 对象的属性值拷贝到新创建的对象中,并将 `financeCode` 设置为拆分后的字符串值。最后将新创建的对象添加到 `feeInfoDomains` 列表中,并在循环结束后返回该列表。这样可以避免引用覆盖的问题,并且不会改变原始输入对象的状态。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)