Java - 默认情况下检查溢出

时间:2018-05-26 11:56:32

标签: java integer-overflow

原因是,检查溢出可能会降低代码速度,因此在时间关键部分不是一个选项。

然而,在代码的大部分内容中,执行速度的轻微下降似乎无关紧要,而其他一些语言则会自行避免溢出。虽然我知道自从Java 8以来,Math库中有一些方法允许进行经过检查的算术运算,但它们非常冗长且使用起来很麻烦。

E.g:

a + b
addExact(a,b)

相反,我正在寻找一种方法(库/ IDE?),它允许我使用+作为检查添加等等,而是为真正意图行为的罕见情况提供未经检查算术的方法。

2 个答案:

答案 0 :(得分:1)

使用+进行检查算术意味着重载了Java不允许的默认操作符行为(请参阅Why doesn't java allow operator overloading)。因此,无法实现此类功能。

那说保存一些打字的最佳选择是将文本片段绑定到+(所以a +space转为addExact(a,)。

答案 1 :(得分:0)

  

相反,我正在寻找一种方法(库/ IDE?),它允许我使用+作为检查添加等等,而是为真正意图行为的罕见情况提供未经检查算术的方法。

没有Java IDE /库/ Java语言功能/无论如何。

Java语言不检查下溢。积分类型使用模运算。并且你不会发现比Math类中的那些方法更加冗长的非溢出算术。

如果您需要使用下溢或溢出检查进行大量算术,并且您希望语言对其执行某些操作,请查看其他编程语言的功能;例如关于Integer Overflow的维基百科文章。