IDEA使用Ctrl+Alt+M快捷键生成方法报错unable to extract method.there are multiole variables to return

我们在写代码的过程中总是会遇到一些可复用的代码片段,这时候就需要将这个代码片段提取成一个单独的方法以供调用,报这个错误的原因在于所选中的代码片段有多个返回值,例如以下代码:

			CheckLockInfoDTO receiptTypeCheckLockInfoDTO = new CheckLockInfoDTO();  
			CheckLockInfoDTO atsPaymentCheckLockInfoDTO = new CheckLockInfoDTO();  
			List<CheckInfoDTO> checkInfoList_1 = new ArrayList<>();
			List<CheckInfoDTO> checkInfoList_2 = new ArrayList<>();
			CheckInfoDTO checkInfoDTO_1 = new CheckInfoDTO();
			CheckInfoDTO checkInfoDTO_2 = new CheckInfoDTO();
			List<CheckDetailDTO> checkDetailList_1 = new ArrayList<>();
			List<CheckDetailDTO> checkDetailList_2 = new ArrayList<>();
			CheckDetailDTO receiptTypeDTO = new CheckDetailDTO();
			CheckDetailDTO atsPaymentDTO = new CheckDetailDTO();
			
			receiptTypeCheckLockInfoDTO.setPlatformType(ENUM_PLATFORM_TYPE.POS.getValue());
			atsPaymentCheckLockInfoDTO.setPlatformType(ENUM_PLATFORM_TYPE.POS.getValue());
			
			checkInfoDTO_1.setLockLevel(ENUM_LOCK_LEVEL.CONT.getValue());
			checkInfoDTO_2.setLockLevel(ENUM_LOCK_LEVEL.CONT.getValue());
			checkInfoDTO_1.setContNo(contNo);
			checkInfoDTO_2.setContNo(contNo);
			
			receiptTypeDTO.setLockType(ENUM_LOCK_TYPE.RECEIPTTYPE.getValue());
			atsPaymentDTO.setLockType(ENUM_LOCK_TYPE.ATSPAYMENT.getValue());
			checkDetailList_1.add(receiptTypeDTO);
			checkDetailList_2.add(atsPaymentDTO);
			checkInfoDTO_1.setCheckDetailList(checkDetailList_1);
			checkInfoDTO_2.setCheckDetailList(checkDetailList_2);
			checkInfoList_1.add(checkInfoDTO_1);
			checkInfoList_2.add(checkInfoDTO_2);
			receiptTypeCheckLockInfoDTO.setCheckInfoList(checkInfoList_1);
			receiptTypeCheckLockInfoDTO.setCheckInfoList(checkInfoList_2);
			
			CheckLockResultDTO checkLockResultDTO_1 = operationService.checkLock(receiptTypeCheckLockInfoDTO);
			CheckLockResultDTO checkLockResultDTO_2 = operationService.checkLock(atsPaymentCheckLockInfoDTO);
			
			boolean receiptTypeResult = checkLockResultDTO_1.getResultCode().equals("1") && (checkLockResultDTO_1.getCheckFlag().equals("1"));
			boolean atsPaymentResult = checkLockResultDTO_2.getResultCode().equals("1") && (checkLockResultDTO_2.getCheckFlag().equals("1"));

很明显其中有两个同类型的返回值,这时候只需要注释掉其中一半的代码只留下一次流程即可解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值