Ole*_*ezt 17 java logging sonarqube
以下部分代码引发了SonarQube的一个主要错误:"仅有条件地调用方法."
我该如何解决这个问题?
if(us != null){
logger.info("Log this: {}", us.toString());
}
Run Code Online (Sandbox Code Playgroud)
Tib*_*ssy 20
调用us.toString()是冗余的,toString()无论配置的日志级别如何,都将调用方法.你应该只us作为参数传递给info没有if声明.
logger.info("Log this: {}", us);
Run Code Online (Sandbox Code Playgroud)
正如问题的评论所述,另一个有效的答案是:
if(logger.isInfoEnabled() && us != null){
logger.info("Log this: {}", us.toString());
}
Run Code Online (Sandbox Code Playgroud)