JNI: вызов метода Java с подписью "() [C" - PullRequest
1 голос
/ 15 декабря 2011

Существует класс Java с методами getLong() и getCharArray(), и у меня есть ссылка на этот объект.

Этот код

jclass clsData = env->GetObjectClass(data);
jmethodID getVal = env->GetMethodID(clsData, "getLong", "()J");
jlong x = env->CallLongMethod(data, getVal);

дает мне доступ к длинному значению, возвращаемомуgetLong().

jclass clsData = env->GetObjectClass(data);
jmethodID getVal = env->GetMethodID(clsData, "getCharArray", "()[C");
???

Как получить доступ к массиву символов?

1 Ответ

4 голосов
/ 15 декабря 2011

Вы можете получить массив символов следующим образом: это простой фрагмент из другого поста, полного сообщения здесь

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...