2016-11-14 3 views
2

Я хочу, чтобы объект Integer возвращался к java-уровню из JNI. При вызове NewObject(env, interger, init, rc) выдается следующий код. Каким образом можно создать объект Integer и вернуть его?Создание целочисленного объекта в JNI

jint rc = 0; 

jclass intClass = (*env)->FindClass(env, "java/lang/Integer"); 
if (intClass == NULL) { 
    return NULL; 
} 
jmethodID init = (*env)->GetMethodID(env, intClass, "intValue", "()I"); 
if (init == NULL) { 
    return NULL; 
} 
jobject rc_obj = (*env)->NewObject(env, intClass, init, rc); 
if (rc_obj == NULL) { 
    return NULL; 
} 

return rc_obj; 

Спасибо!

ответ

3

Попробуйте это:

jclass cls = (*env)->FindClass(env, "java/lang/Integer"); 
jmethodID midInit = (*env)->GetMethodID(env, cls, "<init>", "(I)V"); 
if (NULL == midInit) return NULL; 
jobject newObj = (*env)->NewObject(env, cls, midInit, number); 
Смежные вопросы