java - BigInteger 不可变替代方案/解决方法

标签 java

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

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

最佳答案

您可以使用 BigInteger 来实现此目的,但我不明白不变性可能如何影响用例。

您可以对 BigInteger 执行所有操作。例如:

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

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

关于java - BigInteger 不可变替代方案/解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53025246/

相关文章:

java - Gradle 执行测试的速度非常慢,因为它向套件添加了很多测试

java - 云端点不尊重 Jackson 注释

java - 将数据存储到数组列表中,然后存储到二叉搜索树中

java - 如何在tomcat中发布java web项目

java - 尝试 getStringArray 时出现 NullPointerException

java - Android 字符串为空

java - 如何确保在 Java 中只选择一个 JRadioButton?

java - 准备语句错误: At least one parameter to the current statement is uninitialized

java - 重写代码以仅获取几个变量

java - 在 Struts 2 中使用拦截器时出现 NullPointerException