我有一个关于数据类型的问题,我想在开始编码之前弄清楚!假设我在 C++ 中有一个方法,它返回一个数组或一个双精度缓冲区。然后我需要将这个 double[] 转换为 jdouble,使用 JNI 标头,以便 Java 可以处理数据。
我的第一个问题是我应该将我的 C++ 方法配置为返回一个双精度数组还是一个双精度缓冲区。我知道它们几乎相同,但不知道哪个更好。另外,如何以 Java 可以理解的方式转换缓冲区?
这是我到目前为止所拥有的:
JNIEXPORT jdouble[] JNICALL Java_Test_getDouble[](JNIEnv *env, jobject obj)
{
double[] temp= new double[someSize];
temp = // call my C++ code
jdouble result = new jdouble[someSize];
for(i = 0; i < someSize; i++)
converting double in temp to jdouble in result;
return result;
}
然后Java可以对数据做任何它想做的事情。
我的代码有意义吗?我读了一些关于ByteGetElement()
但我不知道它是否可以在这里应用的帖子。如果你能给我一个简单的例子,那将是非常有帮助的。最终,我仍然需要知道是否应该使用双精度数组或缓冲区。
非常感谢。