簡體   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