我知道所有的数学运算都是处理当前值所需的最大数据类型,但是当您横切一个循环时,您如何明确地乘以长整数?下面的代码返回0,我怀疑是因为溢出。将值显式乘以长整数
long result = 0L;
List<Long> temp = (List<Long>) getListOfIntegers();
for (int i = 0; i < temp.size(); i++) {
result *= temp.get(i).longValue();
}
System.out.println(result);
这里没有溢出 - 只是一个我肯定已经至少咬过一次的错误......并注意列表中没有任何零(或者你如果他们需要特殊的手牌,应妥善处理灵)。 – 2010-04-03 19:41:57