首页 > 解决方案 > BigInteger 非不变的替代方案/解决方法

问题描述

在我的游戏中你有钱。货币值存储在类型变量中long。问题是这个变量最大值是不够的。所以我想把它改成BigInteger,但这是一个不可变的类,我需要在同一个地方存储和更新这个值。

是否有另一个这样的类BigInteger不是不可变的或解决方法?

标签: java

解决方案


您可以BigInteger用于此目的,但我不明白不变性如何影响用例。

您可以对BigInteger. 例如:

BigInteger a = BigInteger.valueOf(100);
a = a.add(BigInteger.valueOf(200));
BigInteger b = a.multiply(BigInteger.valueOf(2));

由于不变性而改变的唯一一件事是,每次有值时都需要创建一个新对象,但可以用该值覆盖当前对象。此外,在多线程情况下,不变性更不容易出错。


推荐阅读