2015-10-15 44 views

回答

2

所以,JNI似乎沒有提供快捷功能來檢查一個數組,所以一個具有模仿調用標準Java方法Class.isArray(obj是jobject測試):

jmethodID Class_isArray_m = (*env)->GetMethodID(env, Class_class, "isArray", "()Z"); 
jclass obj_class = (*env)->GetObjectClass(obj); 
jboolean is_array = (*env)->CallBooleanMethod(obj_class, Class_isArray_mid); 

元素類型可以使用Class.getComponentType()以類似的方式找到。然而,取決於本機代碼想要做什麼,使用Class.getName()https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getName())解析它可能會更容易得到編碼類型名稱 - 數組類型以'['開頭,如果它後面有單個字母,它是原始數組類型,否則它是對象數組(尤其可能是多維數組)。

相關問題