JNI_Z_01_获取Clazz

1、

为了能够在C/C++中使用Java类,jni.h头文件中专门定义了jclass类型来表示Java中的Class类(ZC: 就是Clazz)

2、

  2.1、JNIEXPORT void JNICALL Java_包名_类名_函数名01(JNIEnv * _env, jclass _clazz)  // Java代码中的 静态函数

  2.2、JNIEXPORT void JNICALL Java_包名_类名_函数名02(JNIEnv * _env, jobject _obj)  // Java代码中的 非静态函数

3、

JNIEnv类中有如下几个简单的函数可以取得jclass(ZC: 就是Clazz):

  3.1、jclass (JNIEnv *)->FindClass(const char* clsName):通过类的名称(类的全名,这时候包名不是用"."号,而是用"/"来区分的)来获取jclass

    如: jclass clazzStr = env->FindClass("java/lang/String");获取Java中的String对象的class对象。

  3.2、jclass (JNIEnv *)->GetObjectClass(jobject obj);  ==> 通过对象实例来获取jclass,相当于java中的getClass方法

  3.3、jclass (JNIEnv *)->GetSuperClass(jclass obj);   ==> 通过jclass可以获取其父类的jclass对象

3、

原文地址:https://www.cnblogs.com/javaskill/p/5421078.html