使用 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 现在给出警告“表达式中的数值溢出”。我会理解这是否真的是真的,并且它一直在警告这两种表达方式,但事实并非如此。
有人知道为什么第二个表达式会产生警告吗?我宁愿以这种方式进行细分而不是数字,因为项目中的其他开发人员更容易理解它在做什么(尽管我想我可以发表评论)。代码显然仍然可以编译,但我在构建中发现警告,就像我无法抓挠的痒一样。
编辑 感谢您的回复...我认为这只是 Intellij 中的一个缓存问题...如果我知道复制/粘贴上面的内容,我不会收到警告。如果我在粘贴 1 次或 2 次后尝试编辑它,我会弹出警告。