我们在写代码的过程中总是会遇到一些可复用的代码片段,这时候就需要将这个代码片段提取成一个单独的方法以供调用,报这个错误的原因在于所选中的代码片段有多个返回值,例如以下代码:
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"));
很明显其中有两个同类型的返回值,这时候只需要注释掉其中一半的代码只留下一次流程即可解决。