3

デフォルトのJava品質プロファイル「SonarwaywithFindbugs」のより良い代替案を見つけようとしています。

プロファイルの516のルールの中には、実際には適切に設定されていないものもあります(優先度またはアクティブ化)。

例えば:

  • 「ローカル変数へのデッドストア」は本当に重要な問題ですか?
  • 「空の文字列の追加」は無効になっていますが、有効にする価値があります。
  • 「文字列を比較するために等しいを使用する」は無効になっています...

デフォルトのルールよりもすぐに使用できるルールのセットを見つけることができなかったので、経験豊富なSonarユーザーからこのトピックに関するフィードバックを受け取りたいと思います。

4

2 に答える 2

0

「ローカル変数へのデッドストア」は本当に重大な問題ですか?

場合によってはメモリの浪費を示すだけではないため、深刻な問題になる可能性があります。通常、この問題は、変数へのアクセスがないか間違っていることが原因で発生します。m_valueYデッド ストアとしてマークされる次の例を考えてみましょう。

public class ResultData {
  private int m_valueX;
  private int m_valueY;

  public int getValueX() {
    return m_valueX;
   }
   public int getValueY() {
     //should actually be m_valueY
     return m_valueX;
   }
   public void setValueX(int valueX) {
     m_valueX = valueX;
   }
   public void setValueY(int valueY) {
     m_valueY = valueY;
   }
}

Equals を使用して文字列を比較する

おそらく、「オブジェクトは 'equals()' と比較する必要がある」というルールが代わりにアクティブであり、これによって検出された問題を暗黙的にカバーしています。

于 2015-03-06T08:45:43.857 に答える