有一个带有 getLong()
和 getCharArray()
方法的 Java 类,我有这个类的 jobject 链接。
这段代码
jclass clsData = env->GetObjectClass(data);
jmethodID getVal = env->GetMethodID(clsData, "getLong", "()J");
jlong x = env->CallLongMethod(data, getVal);
让我访问 getLong()
返回的 long 值。
jclass clsData = env->GetObjectClass(data);
jmethodID getVal = env->GetMethodID(clsData, "getCharArray", "()[C");
???
如何访问字符数组?
最佳答案
您可以像这样获取字符数组 这是来自另一篇文章的简单片段完整的文章 here
jobject obj = ... // This is the object you want to call the method on
jcharArray arr = (jcharArray) (*env)->CallObjectMethod(env, obj, getVal);
int count = (*env)->GetArrayLength(env, arr);
jchar* chars = (*env)->GetCharArrayElements(env, arr, 0);
关于java - JNI : call Java method with "()[C" signature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8521337/