Jni学习之访问字段
来源:互联网 发布:visual studio写java 编辑:程序博客网 时间:2024/06/03 20:37
Accessing Fields
Java 有两种类型的字段:一种是实例字段,实例字段属于对象,在同一个类的不同对象之间他们是相互独立的互不影响。另一种是静态字段,静态字段属于类,在同一个类的不同对象之间共享静态字段。
JNI提供了访问静态字段和实例字段的方法,下面是一个静态字段和实例字段的例子:
public class JavaClass{ /**实例字段*/ private String instanceField = "Instance Field"; /**静态字段*/ private static String staticField = "Static field";...}
JNI提供了通过字段ID来访问两种类型字段的方法.你可从给定的class对象实例中得到字段的Id.可以通GetObjectClass方法来获得class对象.如下所示:
jclass clazz;clazz = (*env)->GetObjectClass(env, instance);
有两种方法可以从class中获得字段的Id,调用那一种方法取决于字段的类型。
下面是使用GetFieldId方法来获得实例字段的Id的例子:
jfieldID instanceFieldId;instanceFieldId = (*env)->GetFieldID(env,clazz,"instanceField","Ljava/lang/String;");
下面是使用 GetStaticFieldId方法来获得实例字段的Id的例子:
jfieldID staticFieldId;staticFieldId = (*env)->GetStaticFieldID(env, clazz,"staticField", "Ljava/lang/String;");
上边两个函数的最一个参数代表字段在java中的数据类型,在上边的例子中"Ljava/lang/String;"指示这个字段是String类型的。Ljava/lang/String;"中字符L与分号用来说明这是一个引用类型的字段。原生数据类型则不需要添加L和分号。
Getting a Static Field(得到静态字段)
jstring staticField;staticField = (*env)->GetStaticObjectField(env, clazz, staticFieldId);
在内存溢出的情况下,这些方法可能返回NULL,本地代码不应该继续执行。
0 0
- Jni学习之访问字段
- JNI中访问字段
- JNI学习之---用jni API 访问java对象的属性,方法,调用构造器。
- Android硬件访问服务学习之(一)Android通过JNI访问硬件
- 使用jni直接访问java对象中的字段
- Android学习之 JNI
- Android学习之 JNI
- Android学习之JNI
- android JNI学习之----JNI功能
- Android JNI学习之---JNI开发流程
- JNI学习4——访问数组(JNI)
- 访问数组(JNI)之申请释放
- JNI开发之访问java的实例
- JNI 之中文乱码和数据类型访问
- 【java学习】jni之JNIEnv*
- android学习笔记之JNI
- Jni学习之数组操作
- Jni 学习之NIO操作
- hdu 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(dp多重背包)
- 5-1-1-三角形类的构造函数
- XCode5显示行号
- MifareUltralight官方文档翻译
- AutoCompleteTextView零输入自动提示
- Jni学习之访问字段
- javaSE-网络服务器简介
- StringUtil
- 从Recycled Numbers谈字符串和数字的操作便利性
- 一曲相知,醉梦千年
- vnc view远程登录Linux
- eclipse打开文件所在位置功能
- 设计模式原则
- Eclipse开发Android报错android library projects cannot be launched