我们使用声纳来管理我们的代码质量。我对JPA注解的"Magic Number“冲突有一个问题:
@NotNull
@Size(min = 1, max = 300)
@Column(name = "NAME")这真的违反了注解吗?
如果没有,我们如何处理这种声纳违规?
发布于 2012-09-04 15:35:04
魔术数冲突不知道这个数字是否出现在注释中。我想这是一个假阳性,你可以用两种方法来处理它。或者在您的质量配置文件中禁用此规则,或者创建一个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")发布于 2013-12-06 05:41:58
我不确定2012年的情况如何,但现在发现,似乎有一种方法可以禁用它,仅用于v3.3.2中的注释,而且肯定在更高版本中禁用它

发布于 2015-04-03 15:28:19
您可以在checkstyle文件中编辑规则,这样它就不会考虑注释、哈希码方法或特定数字。
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/>
<property name="ignoreHashCodeMethod" value="true" />
<property name="ignoreAnnotation" value="true" />
</module>https://stackoverflow.com/questions/12258252
复制相似问题