JavaのBigIntegerクラスに、数値リテラルを取得できるコンストラクターがないのはなぜですか?私はBigIntegerを使用するたびに、多くの場合それらについて考えるだけで、これは不思議に思います。
Javaの設計者が、存在するはずの1つの圧倒的な便利さにもかかわらず、1つを除外しなければならなかった理由は何ですか?
答えは JavaDocのBigInteger.valueOf(long)
にあります。
この「静的ファクトリメソッド」は、頻繁に使用されるBigIntegerの再利用を可能にするため、(
long
)コンストラクタに優先して提供されます。
言い換えると、BigInteger.valueOf(long)
は、架空のBigInteger(long)
コンストラクターに要求するとおりの動作をしますが、少し効率的です(または少なくとも可能です)。