【问题标题】:How to add a logger in mapstruct without having Sonar yelling at me?如何在不让 Sonar 对我大喊大叫的情况下在 mapstruct 中添加记录器?
【发布时间】:2021-12-30 05:54:58
【问题描述】:

在映射器接口中,我创建了一个默认方法,使用一堆开关/大小写将字符串映射到枚举。

@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, componentModel="spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public interface ContractMapper {

Logger LOGGER = LogManager.getLogger(ContractMapper.class);

all the mappingstuff...

@Named("getEnum")
default statusEnum getStatusEnum(String status){

    if (status == null){
        return statusEnum.NoStatus;
    } else {

        switch (status) {
        case ...

        default:
            LOGGER.warn("unknown  status {}", status);
            return statusEnum.NoStatus;


        }
    }

当映射失败时我需要一个记录器,有没有办法让一个记录器不会因为它不是私人的而对我大喊大叫?

【问题讨论】:

标签: java logging sonarqube mapstruct


【解决方案1】:

您始终可以为您的映射器隐藏特定的声纳规则。 如果你不能这样做,那么你可以使用abstract 类而不是接口。

例如

@Mapper(unmappedTargetPolicy = ReportingPolicy.WARN, componentModel="spring", nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS)
public abstract class ContractMapper {

    protected static final Logger LOGGER = LogManager.getLogger(ContractMapper.class);

//...
}

【讨论】:

    猜你喜欢
    • 2021-07-30
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    相关资源
    最近更新 更多