假设我在Java中有一个MyClass类,有没有办法在JNI中检查jobject
是MyClass[][]
?
我最初的想法是使用env->IsInstanceOf(myobj, myArrayClass)
,但是调用env->FindClass("[MyClass")
会引发NoClassDefFoundError
。
答案 0 :(得分:3)
我知道这个问题很老但是......
要查找数组的类,请使用:
env->FindClass("[[Lmy/package/MyClass;")
答案 1 :(得分:1)
JNI有点生疏,但有几件事情:
在完全限定的类名上调用FindClass()
,使用“/”作为分隔符而不是点。因此,例如,如果您的课程为"my.package.MyClass"
,则可以致电env->FindClass("my/package/MyClass")
由于你有一个对象类型的二维数组,你需要调用env->GetObjectArrayElement()
两次;一次得到一行,另一次得到一个独特的元素。然后,您可以在该元素上调用env->IsInstanceOf()
。确保你查找这些JNI呼叫的正确签名,我把它们作为练习留给读者:)