声纳问题分配不应多余(squid:S4165)

时间:2019-10-21 13:24:14

标签: sonarqube sonarlint

private void updateEmployee(String employeeCode, UpdateUserDto updateUserDto){
    Employee emp = getEmpDetails(employeeCode);
    emp = updateMobile&Email(emp, updateUserDto.getMobile(), updateUserDto.getMail());
    // Remove this useless assignment; "emp" already holds the assigned value along all execution paths.

    ...
    ...
    emp.setisActive(updateUserDto.getIsActive());
    empRepo.save(emp);
}

private Employee updateMobile&Email(Employee emp, String mobile, String mail){
    if(emp.getMobile() == null && (mobile != null || mobile.isBlank())){
        emp.setMobile(mobile);
    }
    if(emp.getMail() == null && (getMail != null || getMail.isBlank())){
        emp.setMail(mail);
    }
    return emp;
}

由于连接复杂性,我做了一些功能。仅以上面的代码为例

删除此无用的分配; “ emp”已经在所有执行路径中保存了分配的值。

在updateEmployee()的第2行

声纳问题详细信息

Assignments should not be redundant (squid:S4165)

Noncompliant
a = b;
c = a;
b = c; // Noncompliant: c and b are already the same

Compilant
a = b;
c = a;

1 个答案:

答案 0 :(得分:1)

emp参数将通过引用传递到updateMobile&Email方法中,这意味着第二行的分配是不必要的。

我建议更新updateMobile&Email以使其具有无效的返回类型。