带有警告“100”的CheckStyle是一个神奇的数字

2022-09-04 06:02:07

在我的代码中,它显示带有消息“100”的警告是一个幻数。请参阅下面的代码,

int randomNo = generator.nextInt(100);

我在这里读到它 什么是幻数,为什么它不好?但我的怀疑是通过创建静态变量来声明100将占用更多空间,因为我在一个地方使用它。这是解决这个问题的正确方法吗?

  public static final int HUNDRED= 100;

有什么建议吗?


答案 1

嗯,真的有点傻,但是你为什么选择100,它是什么意思?HUNDRED

像这样:

public static final int RANDOM_UPPER_LIMIT=100;

或者更翔实的东西,这取决于你使用值的目的:

public static final int MAX_NUMBER_OF_COLORS=100;

会更有意义,提高可读性。

在这种情况下,节省空间不应该是一个考虑因素,声明变量的空间开销(如果有的话)是完全可以忽略不计的。


答案 2

它实际上与存储无关,而是可读性。如果你想改变一些数字,它可能很难在代码中找到,如果它在顶部,那么它更好(如果它在配置文件中,在许多情况下更好)。

是的,这是一个很好的解决方案。

如果您在该文件之外不需要它,则应将其设置为“私有”,并且您可能希望更具可读性,并使用指示其真正含义的名称,例如:

MAX_RANDOM_NUMBER=100

最好包括它的用途

MAX_RANDOM_FOR_CARD_SELECTION

或类似的东西。

这样,当您在5个月后查看该文件时,因为您添加了20张新卡,因此完全可以明显地更改哪些内容,而无需浏览代码。


推荐