20

intellij 15.0.3 + Java 8u65 を使用しています...

lower = System.currentTimeMillis();
long upper = lower + 31536000000L; //add a year-ish

正常に動作します。しかし、もしそうなら:

lower = System.currentTimeMillis();
long upper = lower + (1000L*60*60*24*365); 

Intellij は「式の数値オーバーフロー」という警告を表示するようになりました。これが実際に真実であり、両方の式に対して一貫して警告を発していたかどうかは理解できますが、そうではありません。

2番目の式が警告を生成する理由を知っている人はいますか? プロジェクトの他の開発者がそれが何をしているのかを理解しやすいので、数字よりもこのように内訳を示したいと思います(ただし、コメントすることはできると思います)。コードは明らかにコンパイルされますが、自分のビルドにスクラッチできないかゆみのような警告が表示されます。

編集 回答ありがとうございます...これは Intellij のキャッシュの問題にすぎないと思います...上記をコピーして貼り付ければ、警告は表示されません。貼り付け後に編集しようとすると、10回のうち1回または2回、警告が表示されます。

4

2 に答える 2