2013-09-23 20 views
7

私の冒険はソナーで始まりました;UnnecessaryLocalBeforeReturn - なぜそれは悪いですか?

ソナーのデフォルト設定では、PMD UnnecessaryLocalBeforeReturnエラーがメジャーレベルで設定されています。

List<Todo> filtered = em.createQuery(query).getResultList(); 
    return filtered; 

私はこのコードを上記の1行に変更する必要があることを意味します。

返信前に私の同僚にこれを「不要」にすることをお勧めしますので、本当に面白いです。

デバッグが楽になると思います。私が復帰線にブレークポイントを設定するとき、私はそこに着くとこの値が用意されていると確信しています。私はステートメント上で選択をしたり、 "ステップオーバー式"を行う必要はありません。

私はそれがメソッドのリターンポイントを減らすことにプラスの影響を与えると信じています。

私の質問は:Checkstyle、PMD、FindBugsなどのプロジェクトからのエラーがエラーとして認識された理由は何ですか?

+1

これは悪くないだけです。これらの静的分析ツールは単にバグにフラグを立てるだけではありません。代わりに、すべての種類のものをチェックするためのツールボックスを用意しています。その選択は、開発しているソフトウェアの種類によって異なります。あなたのプロジェクトでは、できるだけ数行のコードを実行する必要があるかもしれません。あるいは、特殊なコンパイラがこのケースを最適化していないかもしれません。余分なクロックサイクルをアゴートできません。それ以外の場合は、安全に電源を切ることができます。 –

+0

これは良い関連の質問です:http://stackoverflow.com/questions/31733811/local-variables-before-return-statements-does-it-matter/31734226#31734226 –

答えて

0

あなたのポイントがリストの内容だけを表示している場合は、メソッドの呼び出し元にブレークポイントを置くこともできます。もう一つの選択肢は、ブレークポイントを設定して値を評価することです(Eclipse & IntelliJはうまくやっています)。

悪い習慣としてなぜ同意していますか?

変数への参照を追加する必要はありません。

これは、ガベージコレクタの作業負荷を増加させるだけです。

関連する問題