2011-12-15 3 views
1

getLong()getCharArray() 메소드가있는 Java 클래스가 있으며이 클래스에 대한 jobject 링크가 있습니다.JNI : "() [C"서명을 사용하여 Java 메소드 호출

이 코드

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"); 
??? 

문자 배열에 액세스하는 방법은 무엇입니까?

답변

4

이 방법으로 같은 문자 배열을 얻을 수있는이 다른 포스트에서 간단한 조각은 완전한 포스트 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); 
입니다