繁体   English   中英

可疑 integer 分区的检查样式规则?

[英]Checkstyle rule for suspicious integer division?

是否有一个 checkstyle 规则可以捕捉到这样的东西:

double result = someInt / someOtherInt;

result是双倍的(因此显然需要分数),但右侧将执行 integer 除法(向下舍入)。

这样的事情存在吗?

不,但findbugs 可以

ICAST:积分除法结果转换为双精度或浮点数 (ICAST_IDIV_CAST_TO_DOUBLE)

此代码将整数除法(例如,int 或 long 除法)运算的结果转换为 double 或 float。 对整数进行除法会将结果截断为最接近零的 integer 值。 结果被转换为 double 的事实表明应该保留这种精度。 可能的意思是在执行除法之前将一个或两个操作数加倍。

目前在 Checkstyle 中没有这样的东西。

您始终可以创建自己的检查,但跟踪变量可能并不容易。 https://checkstyle.org/writingchecks.html

此外,Checkstyle 不是类型感知工具。 在某些情况下,可能无法知道变量/字段的实际类型。 https://checkstyle.org/writingchecks.html#Limitations

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM