java将乘法运算的一个操作数强制转换为长?
我将两个整数相乘,并存储为long。但它显示错误为, 将此乘法运算的一个操作数强制转换为长整数。如何解决这个问题
private int milisecPerSecond = 1000;
/**
* The update interval in seconds.
*/
// Update frequency in seconds
private int updateIntervalInSec = 5;
/**
* The update interval.
*/
// Update frequency in milliseconds
private long updateInterval = milisecPerSecond * updateIntervalInSec;
# 1 楼答案
首先,这不会导致编译器错误。通常情况下,乘法为整数并将结果存储在整数中
32位宽的带符号整数最多可容纳约20亿个数字。如果您的代码按照它所说的做,那么更新间隔将为200万秒,即23天
如果您真的想强制进行长时间的计算,只需将其中一个因素:
第二个因素将自动转换
请记住,仅铸造结果是不够的:
因为它会对int进行有问题的计算,然后将可能错误的结果转换成一个长的结果
关于Java的每本书的前三页都描述了Casting。如果您对代码质量非常认真,以至于能够运行代码质量工具,那么就让熟悉您使用的语言的人坐在您旁边。一双训练有素的代码审查新手是一个很好的资源