より高速なBigInt
実装を実装していますが、基盤となるプラットフォームとの相互運用性を提供するためにどこまで行くべきかわかりません。
今日は a をBigInt
ラップするだけBigInteger
で、値bigInteger
はラップされた値を返すだけです。
class BigInt(val bigInteger: BigInteger) ...
私は Java 型をラップしていないので、次のようにする必要があります。
final class BigInt private(final val signum: Int,
final private[math] val arr: Array[Int])
def bigInteger: java.math.BigInteger = {
// Avoid copying of potentially large arrays.
val ctor = classOf[java.math.BigInteger]
.getDeclaredConstructor(classOf[Array[Int]], classOf[Int])
ctor setAccessible true
ctor.newInstance(arr, signum.asInstanceOf[Object])
}
...
}
これにより問題が発生する可能性がありますか、それともより良い方法がありますか?