繁体   English   中英

为什么有BigInteger(String)但没有BigInteger(long)?

[英]Why is there BigInteger(String) but no BigInteger(long)?

在Java中,要将字符串转换为BigInteger,请使用构造函数new BigInteger(String)但要将int / long转换为使用工厂函数BigInteger.valueof(long) ,为什么呢?

@Morad您可以在文档中找到答案: BigInteger.valueOf(long)的JavaDoc

此“静态工厂方法”优先于(长)构造函数提供,因为它允许重复使用经常使用的BigIntegers。

解释BigInteger.valueOf(long)完全符合您对BigInteger(long)构造函数的期望,并且这样做的效率更高 (或应该更高 )。

实际上一个BigInteger(long)构造函数,但是它是私有的。 factory方法上的javadoc提供有关原因的信息:

此“静态工厂方法”优先于(长)构造函数提供,因为它允许重复使用经常使用的BigIntegers。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM