Java类型转换注意事项
0
有人反馈说半年内文章找不到,但是前两天都是好好的,怎么会呢?
去看了看代码才发现,计算时间时半年的时间写错了。
private final static long HALF_YEAR_LONG = 180 * 24 * 60 * 60 * 1000;
说实话当时真没注意这个问题,这个乘法是先计算最后转long
类型,所以时间计算出来其实已经超过了int
的最大值2147483647
。
最后修改如下:
private final static long HALF_YEAR_LONG = 180L * 24 * 60 * 60 * 1000;
请注意在180
后面就加上L
转为long
类型。
如果加在1000
后面,前面就超过了int
的最大值,还是会出现问题的。