java - BigInteger 非不变的替代方案/解决方法
问题描述
在我的游戏中你有钱。货币值存储在类型变量中long
。问题是这个变量最大值是不够的。所以我想把它改成BigInteger
,但这是一个不可变的类,我需要在同一个地方存储和更新这个值。
是否有另一个这样的类BigInteger
不是不可变的或解决方法?
解决方案
您可以BigInteger
用于此目的,但我不明白不变性如何影响用例。
您可以对BigInteger
. 例如:
BigInteger a = BigInteger.valueOf(100);
a = a.add(BigInteger.valueOf(200));
BigInteger b = a.multiply(BigInteger.valueOf(2));
由于不变性而改变的唯一一件事是,每次有值时都需要创建一个新对象,但可以用该值覆盖当前对象。此外,在多线程情况下,不变性更不容易出错。
推荐阅读
- regex - sed 正确的随机字符串
- c++ - 我能保证 Lua 栈的大小吗?
- android - 如何在android上链接房间数据库实体?
- hibernate - 如何在休眠中正确映射一对一?
- python-3.x - pywinauto - 如何控制 MFCReportCtrl?
- c# - 尝试从 xml 字符串中获取 xml 节点值时,序列不包含任何元素
- javascript - 如果存在 onload,如何只加载一次 iframe?
- reactjs - 来自 Redux 的规范化数据未显示在前端(使用反应)
- php - 通过本地主机 (XAMPP) 发送电子邮件时遇到问题
- apollo - 重构和 Apollo 查询