我正在解决SonarQube问题,因此我面临以下警告:任何人请告诉我该如何解决,

这是我的课

public static Agency updateEntity(AgencyModel model, Agency entity) {

        if (model == null || entity == null) {
            return null;
        }

        if (entity.getAgencyId() != model.getAgencyId()) {
            entity = new Agency()


// for the above variable 'entity' i get the warning, "Introduce a new
    variable instead of reusing the parameter "entity".


    }

        entity.setAgencyId(model.getAgencyId());
        if (entity.getAgencyLogoLarge() == null) {
            entity.setAgencyLogoLarge(new File());
        }
        entity.setAgencyLogoLarge(FileModel.updateEntity(model.getAgencyLogoLarge(), entity.getAgencyLogoLarge()));
        if (entity.getAgencyLogoSmall() == null) {
            entity.setAgencyLogoSmall(new File());
        }
        entity.setAgencyLogoSmall(FileModel.updateEntity(model.getAgencyLogoSmall(), entity.getAgencyLogoSmall()));
        entity.setAgencyName(model.getAgencyName());
        entity.setContactPersons(
                AgencyContactPersonModel.updateEntities(model.getContactPersons(), entity.getContactPersons()));
        entity.setOtherDetails(model.getOtherDetails());
        entity.setClassification(ClassificationModel.updateEntity(model.getClassification(), entity.getClassification()));
        entity.setStatus(entity.getStatus());
        entity.setCreatedBy((model.getCreatedBy() != null && model.getCreatedBy() != 0) ? model.getCreatedBy()
                : entity.getCreatedBy());
        entity.setUpdatedBy((model.getUpdatedBy() != null && model.getUpdatedBy() != 0) ? model.getUpdatedBy()
                : entity.getUpdatedBy());
        entity.setUpdatedDate(new Date());
        entity.setStatus(Constant.ACTIVE);

        return entity;
    }


在以上方法中,我会收到警告,请问任何人告诉我解决上述问题的最佳方法是什么。

最佳答案

向方法参数分配值通常会指示一个错误(即使您的示例中不是这种情况),这可能就是SonarQube发出该警告的原因。

假设您无法禁用该警告(或者您不想),则可以通过引入新的局部变量来消除该警告:

public static Agency updateEntity(AgencyModel model, Agency entity) {

    Entity result;

    if (model == null || entity == null) {
        return null;
    }

    if (entity.getAgencyId() != model.getAgencyId()) {
        result = new Agency();
    } else {
        result = entity;
    }

    ... use result variable instead of entity variable ...

    return result;
}

09-04 16:19
查看更多