1

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

jobject可以投到jdouble吗?

4

1 回答 1

1

您可以在 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 中仍然这样做更容易。

于 2015-03-25T20:41:21.300 回答