我正在尝试将 java 传递Double
给 C++ 中的本地方法,该方法期望double
作为输入参数。但是 JNI 包装器方法将参数保存为jobject
而不是jdouble
. 谁能告诉我如何解决这个问题。
jobject
可以投到jdouble
吗?
我正在尝试将 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 中仍然这样做更容易。