Checkstyle 不喜欢常量的商表达式


private static final int DEFAULT_SIZE_IN_BYTES = 256 * 1024;
private static final double SPECIAL_RATIO = 4.0 / 3.0;

我们的Checkstyle可以接受第一个常数由乘积表达式建立,但它抱怨第二个常数的商表达式中的两个字面值本身都是幻数。是否有一种方法可以告诉Checkstyle接受字面量的商作为有效的?

根据MagicNumberCheck.java#L109,在数字字面值和封闭常量定义之间允许以下标记不被视为幻数:

  • assign ( =),
  • ARRAY_INIT(数组初始化器),
  • EXPR(任意表达式),
  • unary_plus ( +),
  • unary_minus ( -),
  • TYPECAST(强制转换操作符),
  • ELIST(表达式列表),
  • literal_new ( new),
  • METHOD_CALL(方法调用),
  • star ( *)

如您所见,列表中没有DIV (/)令牌,不幸的是这个列表是不可配置的。

我已经打开了这个问题,并拉请求修复它在下一个版本的Checkstyle。

编辑:

Pull request已经被合并,这个特性将在Checkstyle 6.7中发布。

相关内容

  • 没有找到相关文章

最新更新