JPA注释上的魔术数字声纳违规

时间:2012-09-04 06:57:20

标签: annotations sonarqube

我们正在使用声纳来管理我们的代码质量。我对JPA注释的“魔术数字”违规有问题,如:

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

这是注释的真正违规吗?

如果没有,我们如何处理这种超声波冲击?

3 个答案:

答案 0 :(得分:6)

Magic Number违规无法理解此号码是否出现在注释中。恕我直言,这是一个误报,你可以用两种方式处理它。 在质量配置文件中禁用此规则或创建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")

答案 1 :(得分:4)

我不确定它是如何在2012年,但现在找到这个,似乎有一种方法来禁用它只是为了3.3.2中的注释,并且肯定高于那个

Disable magic number in annotation. Shown is Sonar 3.3.2

答案 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>