コードの次の部分は、SonarQubeで大きなバグを発生させます:「条件付きでのみメソッドを呼び出します。」
これを修正するにはどうすればよいですか?
if(us != null){
logger.info("Log this: {}", us.toString());
}
us.toString()
への呼び出しは冗長です。設定されたログレベルに関係なく、toString()
メソッドが呼び出されます。 us
ステートメントなしで、info
の引数としてif
のみを渡す必要があります。
logger.info("Log this: {}", us);
質問のコメントで述べたように、別の有効な答えは次のとおりです。
if(logger.isInfoEnabled() && us != null){
logger.info("Log this: {}", us.toString());
}