我们正在使用声纳来管理我们的代码质量。我对JPA注释的“魔术数字”违规有问题,如:
@NotNull
@Size(min = 1, max = 300)
@Column(name = "NAME")
这是注释的真正违规吗?
如果没有,我们如何处理这种超声波冲击?
答案 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中的注释,并且肯定高于那个
答案 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>