2017-06-02 11 views
2

次のコード部分では、SonarQubeの大きなバグが発生しています。 "条件付きでメソッドを呼び出す"。
これをどのように修正する必要がありますか?ソナー:条件付きでのみメソッドを呼び出す

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

あなたはその検査をオフにすることができます。また、プロジェクトのことが必要なのですか? – QBrute

+0

@QBroute私は "ターンオフ"したくないですが、推奨される解決策の1つであるif()が適用されて以来、まだバグが発生する理由を知りたいと思います。および/または解決策。 – Olezt

+0

どのロギングフレームワークを使用していますか? SonarQubeインスタンスのどのバージョンのSonarJavaプラグインを使用しますか? –

答えて

4

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

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

質問のコメントで述べたように、他の作業の答えは次のとおりです。

if(logger.isInfoEnabled() && us != null){ 
    logger.info("Log this: {}", us.toString()); 
} 
関連する問題