最好的方法是什么?
我尝试了以下方法:
ByteBuffer cacheBuffer=ByteBuffer.allocateDirect(nm(nLimit,0)); //where nm(nLimit,0) is a large number
double[] cache=cacheBuffer.asDoubleBuffer().array();
但我得到了这个例外:
java.lang.UnsupportedOperationException
at java.nio.DoubleBuffer.array(Unknown Source)
为什么?
编辑:
它看起来像 javadoc “返回支持此缓冲区的双精度数组(可选操作)。” 实际上意味着 array() 方法只是返回已经支持此缓冲区的双精度数组。我认为它会以某种方式将缓冲区转换为 double[] 。所以现在我有一个例外是有道理的。