原因是,检查溢出可能会降低代码速度,因此在时间关键部分不是一个选项。
然而,在代码的大部分内容中,执行速度的轻微下降似乎无关紧要,而其他一些语言则会自行避免溢出。虽然我知道自从Java 8以来,Math库中有一些方法允许进行经过检查的算术运算,但它们非常冗长且使用起来很麻烦。
E.g:
a + b
与
addExact(a,b)
相反,我正在寻找一种方法(库/ IDE?),它允许我使用+
作为检查添加等等,而是为真正意图行为的罕见情况提供未经检查算术的方法。
答案 0 :(得分:1)
使用+
进行检查算术意味着重载了Java不允许的默认操作符行为(请参阅Why doesn't java allow operator overloading)。因此,无法实现此类功能。
那说保存一些打字的最佳选择是将文本片段绑定到+
(所以a +
和space
转为addExact(a,
)。
答案 1 :(得分:0)
相反,我正在寻找一种方法(库/ IDE?),它允许我使用+作为检查添加等等,而是为真正意图行为的罕见情况提供未经检查算术的方法。
没有Java IDE /库/ Java语言功能/无论如何。
Java语言不检查下溢。积分类型使用模运算。并且你不会发现比Math
类中的那些方法更加冗长的非溢出算术。
如果您需要使用下溢或溢出检查进行大量算术,并且您希望语言对其执行某些操作,请查看其他编程语言的功能;例如关于Integer Overflow的维基百科文章。