在Java中,要将String转换为BigInteger,您可以使用构造函数new BigInteger(String)
但是为了转换int / long,您使用工厂函数BigInteger.valueof(long)
,为什么会这样?
答案 0 :(得分:20)
@Morad您可以在文档中找到答案:JavaDoc of BigInteger.valueOf(long):
这个"静态工厂方法"提供优先于(长) 构造函数因为它允许重用经常使用的 BigIntegers。
解释:BigInteger.valueOf(long)
完全符合您对BigInteger(long)
构造函数的期望,并且(或者应该)更高效
答案 1 :(得分:11)
实际上是一个BigInteger(long)
构造函数,但它是私有的。工厂方法中的javadoc提供了有关原因的信息:
这个"静态工厂方法"提供优先于(长) 构造函数因为它允许重用经常使用的 BigIntegers。