JNI在将Java double转换为jdouble时出现问题

JNI trouble converting Java double to jdouble

本文关键字:问题 jdouble 在将 Java double 转换 JNI      更新时间:2023-10-16

我正试图将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做这件事还是比较容易的。