我正试图将java Double
传递给C++中的一个本机方法,该方法需要double
作为输入参数。但是JNI包装器方法将参数保持为jobject
而不是jdouble
。有人能告诉我如何解决这个问题吗。
是否可以将jobject
强制转换为jdouble
?
您可以在C++、中轻松地将Double
转换为double
JNIEXPORT jdouble JNICALL Java_PriceEngine_getPrice (JNIEnv *env, jobject thiz, jobject price) {
jclass jcDouble = env->FindClass("java/lang/Double");
jmethodID jmidDoubleValue = env->GetMethodID(jcDouble, "doubleValue", "()D" );
double dPrice = env->callDoubleMethod(jmidDoubleValue, price);
}
但是用Java做这件事还是比较容易的。