web-dev-qa-db-ja.com

JavaのBigIntegerクラスに、数値リテラルを取得できるコンストラクターがないのはなぜですか?

JavaのBigIntegerクラスに、数値リテラルを取得できるコンストラクターがないのはなぜですか?私はBigIntegerを使用するたびに、多くの場合それらについて考えるだけで、これは不思議に思います。

Javaの設計者が、存在するはずの1つの圧倒的な便利さにもかかわらず、1つを除外しなければならなかった理由は何ですか?

8
Wug

答えは JavaDocのBigInteger.valueOf(long) にあります。

この「静的ファクトリメソッド」は、頻繁に使用されるBigIntegerの再利用を可能にするため、(long)コンストラクタに優先して提供されます。

言い換えると、BigInteger.valueOf(long)は、架空のBigInteger(long)コンストラクターに要求するとおりの動作をしますが、少し効率的です(または少なくとも可能です)。

19
Joachim Sauer