2013-05-29 15 views
1

是否可以更改此代碼片段以便SetLongField成爲setIntField?在這裏可以做一個setIntField()嗎? int在Long中的JNI中

jobject nbField ; 
UL l_ul_NbField ; 

jclass longClass = i_env->GetObjectClass(nbField); 
jfieldID val = i_env->GetFieldID(longClass, "value", "J"); 
i_env->SetLongField(nbField, val, (L)l_ul_NbField); 

當我這樣做:

jclass intClass = i_env->GetObjectClass(nbField); 
jfieldID val = i_env->GetFieldID(intClass, "value", "I"); 
i_env->SetIntField(nbField, val, (I)l_ul_NbField); 

崩潰!爲什麼?

回答

1

你能確定什麼類型的nbField是?如果nbField的類型是Long,那麼i_env->GetFieldID(intClass, "value", "I");返回null,所以調用setIntField會導致崩潰。

相關問題