[英]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.