我正在实现一个更快的BigInt
实现,但我不确定我应该走多远才能提供与底层平台的互操作。
今天BigInt
只包装 aBigInteger
并且值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])
}
...
}
这会造成麻烦还是有更好的方法?