JNI 获取jclass对象的方法
在 JNI 中,获取 jclass 对象的方法主要有以下几种:
1、使用 FindClass 这是最常用的方法,通过类的全限定名来查找对应的jclass对象。
jclass clazz = env->FindClass("java/lang/String");
2、使用 GetObjectClass 当你已经有了一个Java对象的引用时,可以使用这个方法来获取它的jclass对象。
jclass clazz = env->GetObjectClass(obj);
3、使用 GetSuperClass 如果你想获取某个类的父类的 jclass 对象,可以使用这个方法。
jclass superClazz = env->GetSuperclass(clazz);
示例:
#include <jni.h> extern "C" JNIEXPORT jint JNICALL Java_com_example_myapp_MainActivity_getAnswer(JNIEnv *env, jobject /* this */) { // 获取String类的jclass jclass stringClass = env->FindClass("java/lang/String"); // 使用完毕后,记得释放 env->DeleteLocalRef(stringClass); // 获取某个String对象的jclass jstring str = env->NewStringUTF("Hello from JNI!"); jclass stringObjClass = env->GetObjectClass(str); env->DeleteLocalRef(stringObjClass); // 获取String类的父类,即Object类的jclass jclass objectClass = env->GetSuperclass(stringObjClass); env->DeleteLocalRef(objectClass); return 0; }
 
                     
                    
                 
                    
                
 
                
             
         浙公网安备 33010602011771号
浙公网安备 33010602011771号