我们正在使用声纳来管理我们的代码质量。我对 JPA 注释的“幻数”违规有疑问:
@NotNull
@Size(min = 1, max = 300)
@Column(name = "NAME")
这是对注释的真正违反吗?
如果不是,我们如何处理这种 Sonar 违规?
我们正在使用声纳来管理我们的代码质量。我对 JPA 注释的“幻数”违规有疑问:
@NotNull
@Size(min = 1, max = 300)
@Column(name = "NAME")
这是对注释的真正违反吗?
如果不是,我们如何处理这种 Sonar 违规?
幻数违规不了解此数字是否出现在注释中。恕我直言,这是一个误报,您可以通过两种方式处理它。在您的质量配置文件中禁用此规则或创建一个 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")
我不确定 2012 年的情况如何,但现在发现,似乎有一种方法可以仅针对 v 3.3.2 中的注释禁用它,而且肯定高于此
您可以在 checkstyle 文件中编辑规则,使其不考虑注释、哈希码方法或特定数字。
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2, 3"/>
<property name="ignoreHashCodeMethod" value="true" />
<property name="ignoreAnnotation" value="true" />
</module>