如何创建一个 BinaryOperator 来添加 BigInteger

How to create a BinaryOperator to add up BigInteger

我想创建一个 BinaryOperator<BigInteger> biOp 以添加 BigInteger 个值。例如,我将有一个巨大的列表或数组,其中包含不同的 BigInteger 值,我想使用循环和 biOp.

将它们全部相加

结果例如两个值应如下所示:

System.out.println(biOp.apply(BigInteger.ONE, BigInteger.ONE));
// outputs 2

如何正确创建或初始化 biOp

最简单的方法是使用方法参考 BigInteger::add:

BinaryOperator<BigInteger> binOp = BigInteger::add;

这是可行的,因为当您使用 class 名称创建对实例方法的方法引用时(即不是 static 方法),apply 方法将额外占用调用方法的实例的参数。因此,尽管 add 方法采用一个 BigInteger 参数,但此方法引用采用两个 BigInteger 参数。