报告作为数字文字未通过常量声明来命名的“魔法数字”。 魔法数字可能导致代码意图不明确,如果一个代码位置中的魔法数字进行了更改,但在另一个代码位置未加更改,则可能导致错误。 数字 0、1、2、3、4、5、6、7、8、9、10、100、1000、0L、1L、2L、0.0、1.0、0.0F 和 1.0F 不在此检查中报告。

示例:


  void checkFileSize(long bytes) {
    if (bytes > 1_048_576) {
      throw new IllegalArgumentException("too big");
    }
  }

建议通过快速修复引入一个新常量:


  static final int MAX_SUPPORTED_FILE_SIZE = 1_048_576;

  void checkFileSize(long bytes) {
    if (bytes > MAX_SUPPORTED_FILE_SIZE) {
      throw new IllegalArgumentException("too big");
    }
  }

使用下面的第一个复选框在 hashCode() 方法中禁用此检查。

使用下面的第二个复选框忽略注解中的幻数。

在构造 CollectionMapStringBuilderStringBuffer 对象时,使用下面第三复选框来忽略用作初始容量的幻数。