JNI无法将Java double转换为jdouble

时间:2015-03-25 11:58:13

标签: java c++ java-native-interface native-methods

我正在尝试将java Double传递给C ++中的本机方法,该方法期望double作为输入参数。但是JNI包装器方法将参数保持为jobject而不是jdouble。任何人都可以告诉我如何解决这个问题。

是否可以将jobject投射到jdouble

1 个答案:

答案 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中这样做更容易。