一、以整数型礼品交易为例子
int userSend = Integer.valueOf(id);int amount = Integer.valueOf(amountStr);int userAccept = Integer.valueOf(userIdAccept);GiftService giftService = new GiftService();boolean carry1 = giftService.isHavePropertyByUserIdByGiftId(userSend, 1);boolean carry2 = giftService.isHavePropertyByUserIdByGiftId(userAccept, 1);if (carry1 && carry2) {BigInteger userSendCurrentAmount = giftService.getAmountByUserIdAndGiftId(userSend, 1);BigInteger amountBigInt = BigInteger.valueOf(amount);if (userSendCurrentAmount.compareTo(amountBigInt) > 0 && userSendCurrentAmount.compareTo(BigInteger.ZERO) > 0 && amountBigInt.compareTo(BigInteger.ZERO) > 0) {// 执行交易操作} else {// 处理金额不足或者金额为负的情况}} else {ResponseReturnWriterUtil.writeListResponse2(response, 1, "\"双方都持有相应账户才可进行交易\"");}
-
userSendCurrentAmount.compareTo(amountBigInt) > 0:这部分代码比较了userSendCurrentAmount和amountBigInt两个BigInteger对象的大小关系。如果userSendCurrentAmount大于amountBigInt,则返回一个大于 0 的值,表示满足交易条件。这个条件确保了发送者拥有的账户余额 数量大于交易中要转移的数量。 -
userSendCurrentAmount.compareTo(BigInteger.ZERO) > 0:这部分代码确保userSendCurrentAmount大于零。这是因为在正常情况下,用户拥有的账户余额 数量应该大于等于零,不能为负数。这个条件是对用户当前拥有的账户余额 数量进行验证。 -
amountBigInt.compareTo(BigInteger.ZERO) > 0:这部分代码确保amountBigInt(即交易中要转移的数量)也大于零。因为在交易中,转移的数量应该是正数,不能为零或负数。
综合这三个条件,只有当发送者拥有的账户余额 数量大于交易中要转移的数量,并且这两个数量都大于零时,才会执行交易操作。如果不满足这些条件,则会执行注释为"处理金额不足或者金额为负的情况"的部分代码,即处理交易条件不满足的情况。
二、介绍bigInteger

BigInteger 是 Java 中的一个类,用于表示任意精度的整数。在 Java 中,基本的整数类型(如 int、long 等)有其范围限制,超出范围后会出现溢出的情况。而 BigInteger 类可以表示任意大小的整数,因此可以用于处理大整数计算,例如在金融领域或密码学中经常会用到。
BigInteger 类的一些重要特点和用法:
- 任意精度整数:
BigInteger类可以表示任意大小的整数,不受 Java 基本整数类型的范围限制。 - 不可变性:
BigInteger对象一旦创建,就不能修改其值。任何对BigInteger对象的运算操作都会生成一个新的BigInteger对象。 - 支持常见的整数运算操作:
BigInteger类提供了丰富的方法来进行整数的加、减、乘、除等运算操作。 - 提供比较和判断方法:
BigInteger类提供了compareTo方法来比较两个BigInteger对象的大小关系,以及equals方法来判断两个BigInteger对象是否相等。 - 不支持基本类型自动装箱: 由于
BigInteger是一个类而不是基本数据类型,因此不能直接使用基本类型的运算符对BigInteger对象进行操作。需要使用BigInteger类提供的方法来进行运算。 - 静态工厂方法:
BigInteger类提供了一些静态工厂方法来创建BigInteger对象,例如valueOf(long val)可以将一个long类型的值转换为BigInteger对象。
BigInteger 类是 Java 中用于表示任意精度整数的类,可以在需要处理大整数计算的场景中发挥重要作用。