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中发布。