SonarQube:仅按条件调用方法

2022-09-01 01:00:37

以下代码部分在SonarQube上提出了一个主要错误:“仅有条件地调用方法”。
我应该如何解决这个问题?

if(us != null){
    logger.info("Log this: {}", us.toString());
}

答案 1

对 的调用是冗余的,无论配置的日志级别如何,都将调用方法。您只应作为参数传递给,而不使用语句。us.toString()toString()usinfoif

logger.info("Log this: {}", us);

答案 2

正如问题的评论所述,另一个工作答案是:

if(logger.isInfoEnabled() && us != null){
    logger.info("Log this: {}", us.toString());
}

推荐