Skip to main content

Numeric overflow in expression idea java

· One min read

背景

在使用java的idea的时候,有如下代码

Date date = new Date();
date.getTime() + 30 * 24 * 60 * 60 * 1000;

其中30 * 24 * 60 * 60 * 1000 会变成负数,而且idea会提示:

Numeric overflow in expression

改成下面的样子就可以去掉警告:

date.getTime() + 30L * 24 * 60 * 60 * 1000

原理

原理就是变量提升的步骤和溢出的逻辑交叉在一起