6

我们正在使用声纳来管理我们的代码质量。我对 JPA 注释的“幻数”违规有疑问:

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

这是对注释的真正违反吗?

如果不是,我们如何处理这种 Sonar 违规?

4

3 回答 3

6

幻数违规不了解此数字是否出现在注释中。恕我直言,这是一个误报,您可以通过两种方式处理它。在您的质量配置文件中禁用此规则或创建一个 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-09-04T07:35:03.627 回答
4

我不确定 2012 年的情况如何,但现在发现,似乎有一种方法可以仅针对 v 3.3.2 中的注释禁用它,而且肯定高于此

在注释中禁用幻数。 显示的是声纳 3.3.2

于 2013-12-05T21:41:58.337 回答
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>
于 2015-04-03T07:28:18.783 回答