我尝试了以下代码片段:
BigInteger[] biCoords = (BigInteger[]) LongStream.of(coords).mapToObj((long n) -> {
return BigInteger.valueOf(n);
}).toArray();
产量
原因:java.lang.ClassCastException:[Ljava.lang.Object;不可能是强制转换为[Ljava.math.BigInteger;
是否可以使用Java中的流将long类型的数组转换为Java中的BigIntegers数组?
toArray
返回Object[]
。您需要使用带有生成器的重载变体:
BigInteger[] biCoords =
LongStream.of(coords)
.mapToObj((long n) -> {
return BigInteger.valueOf(n);
}).toArray(BigInteger::new);
请注意,您可能会失去一些健壮性,并使用方法引用清理代码:
BigInteger[] biCoords =
LongStream.of(coords).mapToObj(BigInteger::valueOf).toArray(BigInteger::new);