看问题Parameter passing in native a method。 如果我想编写一个本机方法Traverser(String path),它返回一个值该怎么办?如何在Java类型中转换C中的long int类型,返回本机方法Traverser(String path)?例如,如何将long int转换为jlong? 如果我想写一个方法
public native long Traverser (String path),
这段代码是否正确
JNIEXPORT jlong JNICALL Java_ParallelIndexation_Traverser(JNIEnv* env, jobject obj, jstring path)
{
long int result;
const jbyte* path2 = env->GetStringUTFChars(path, nullptr);
if (path2 == nullptr)
return;
result=Traverser(path2);
env->ReleaseStringUTFChars(path, path2);
return result;
}
?
或者是否有必要转换
long int result
到
jlong?
是否可以使用Java_ParallelIndexation_Traverser而不是
long int result;
宣布
jlong result;