如何解决声纳“仅有条件调用方法”

1 java logging json gson sonarqube

我的代码如下所示:

logger.debug("Message:Request", new Gson().toJson(req));
Run Code Online (Sandbox Code Playgroud)

声纳问题说:

仅有条件地调用方法。

我该如何修复这行代码?

Mar*_*234 5

一般来说,请查看 SonarQube 规则描述以了解它们的含义、它们是否与您的用例相关以及如何解决问题。在这种情况下,规则描述显示了如何解决这个问题:

// since Java 8, we can use Supplier, which will be evaluated lazily
logger.log(Level.SEVERE, () -> "Something went wrong: " + message);
Run Code Online (Sandbox Code Playgroud)

或者

if (LOG.isDebugEnabled() {
    // this is compliant, because it will not evaluate if log level is above debug.
    LOG.debug("Unable to open file " + csvPath, e);
}
Run Code Online (Sandbox Code Playgroud)

这取决于您使用的日志记录框架,其中哪些解决方案是可行的。