我正在尝试将java Double
传递给C ++中的本机方法,该方法期望double
作为输入参数。但是JNI包装器方法将参数保持为jobject
而不是jdouble
。任何人都可以告诉我如何解决这个问题。
是否可以将jobject
投射到jdouble
?
答案 0 :(得分:1)
您可以轻松地将Double
转换为C ++中的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中这样做更容易。