web-dev-qa-db-ja.com

SonarQube:メソッドを条件付きでのみ呼び出す

コードの次の部分は、SonarQubeで大きなバグを発生させます:「条件付きでのみメソッドを呼び出します。」
これを修正するにはどうすればよいですか?

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

us.toString()への呼び出しは冗長です。設定されたログレベルに関係なく、toString()メソッドが呼び出されます。 usステートメントなしで、infoの引数としてifのみを渡す必要があります。

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

質問のコメントで述べたように、別の有効な答えは次のとおりです。

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