此文主要讲 jni 调用java 对象的数据和数据类型的处理
c++调用java的一般步骤:
-
获得类
jclass jclass1 = env->GetObjectClass(jobj);// 通过调用的方法获取类型 // jclass 类型 和 GetObjectClass() 来自 jni.h 头文件 所以该操作需要引入#include <jni.h>
-
通过类获取响应的变量的id
jfieldID fid = env->GetFieldID(jclass1, "num", "I"); //获取字段id,
I表示数据的基本类型
-
通过id和对象获取指定字段的值
jint num = env->GetIntField(jobj, fid); //注意,不是用 jclazz, 使用 jobj ,获取int 值
-
java基本数据类型和表示符号的对应关
java jni符号 byte B boolean Z char C short S int I long L float F double D void V objects对象 Lfully-qualified-class-name; L类名; Arrays数组 [array-type [数组类型 methods方法 (argument-types)return-type(参数类型)返回类型