是否有一个checkstyle规则可以捕获这样的内容:
double result = someInt / someOtherInt;
[result
是双精度的(因此显然需要分数),但是右侧将进行整数除法(向下舍入)。
是否存在类似的东西?
否,但findbugs can:
ICAST:积分除法结果强制转换为double或float(ICAST_IDIV_CAST_TO_DOUBLE)
此代码将整数除法(例如int或long除法)运算的结果强制转换为double或float。对整数进行除法会将结果截断为最接近零的整数值。结果转换为两倍的事实表明应该保持这种精度。这可能意味着在执行除法运算之前将一个或两个操作数转换为双精度。
Checkstyle中目前没有类似的东西。