繁体   English   中英

BigInteger与否还不是BigInteger?

[英]BigInteger or not BigInteger?

在Java中,大多数基本类型都是有符号的(一位用于表示+/-),因此当我超出类型的限制时,我会得到意想不到的结果,比如负数。

有没有比使用BigInteger更好的解决方案,因为BigInteger存在性能问题,您需要使用类方法进行基本算术而不是语言运算符(废墟可读性)?

不,没有更好的解决方案。 如果您正在处理不能适合long或double的值,那么您将需要使用类似BigInteger的引用类型,而Java不支持运算符重载。

从技术上讲,我想你可以在有符号值和无符号值之间进行一些映射,但是如果你的目标是干净而简单的代码那么这就完全没有了。

Scala真的是这里的解决方案。 在那种语言中,“运算符”实际上只是固定的方法,可以为任意类定义。 事实上,在您的情况下,他们已经在标准库中。 因此,您可以拥有特殊数字表示的强大功能,但Java原语类型的语法清晰。

Scala经过了强化,可以与Java代码完全互操作。

仍然拥有漂亮的商务逻辑的唯一方法是使用脚本语言,您可以编译为java类。 在内部,您可以使用BigIntegers。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM