多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
访问一个对象属性,在原生方法中需要两步。首先,调用GetFieldID获取属性ID,你需要使用类引用,属性名和属性描述符作为调用参数。 `fid = (*env)->GetFieldID(env, cls, "s", "Ljava/lang/String;");` 示例中通过GetObjectClass方法获取对象所述的类引用,并将其作为第二个参数传递给GetFieldID. 一旦你获取到了属性ID,你就使用对象实例和这个属性ID通过调用GetObjectFiled来获取响应的属性值: `jstr = (*env)->GetObjectField(env, obj, fid);` 由于字符串和数组都是特殊类型的对象,我们需要使用GetObjectField方法来访问这些类型的属性。除了Get/SetObjectField,JNI也支持像GetIntField以及SetFloatField之类的访问基础类型的函数。