2012-09-04 16 views
6

私たちはコード品質管理のためにソナーを使用しています。JPAアノテーションの魔法番号ソナー違反

@NotNull 
@Size(min = 1, max = 300) 
@Column(name = "NAME") 

これは注釈のための真の違反です:私はそのようなJPAアノテーションのための「マジックナンバー」違反に問題がありますか?

もしそうでなければ、このようなソナー違反をどのように処理できますか?

答えて

6

この番号が注釈に表示されるかどうかは、魔法番号違反ではわかりません。 IMHOこれは偽陽性で、2つの方法で対処できます。 品質プロファイルでこのルールを無効にするか、MAGICNUMBERクラスを作成し、静的プロパティとして使用しているすべての数値をリストします。たとえば、以下のクラスを見て

public final class MAGICNUMBER { 
public static final int L8000 = 8000; 
public static final int L300 = 300; 

}

次にあなたがこの

@NotNull 
@Size(min = 1, max = MAGICNUMBER.L300) 
@Column(name = "NAME") 
+0

私はこれらの2つの方法が嫌いです。私はソナーがコードを変更することなくそれを処理したい。 –

+3

次に、Sonarプロファイルで関連するルールを無効にします – ppapapetrou

4

私はそれが2012年にあったかわからないんだけど、今これを見つけるように、あなたのクラスでそれを使用することができますv 3.3.2の注釈だけを無効にする方法があるようですが、確かにそれ以上です。

Disable magic number in annotation. Shown is Sonar 3.3.2

1

checkstyleファイルのルールを編集して、注釈、ハッシュコードの方法、または特定の番号を考慮しないようにすることができます。

<module name="MagicNumber"> 
    <property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/> 
    <property name="ignoreHashCodeMethod" value="true" /> 
    <property name="ignoreAnnotation" value="true" /> 
</module> 
関連する問題