JNI学习积累之一 - - 常用函数大全(3)

2019-08-02 00:43

jstring NewStringUTF (JNIEnv *env, const char *bytes); 功能:利用 UTF-8 字符数组构造新 java.lang.String 对象。 参数: env:JNI 接口指针。如果无法构造该字符串,则为 NULL。 bytes:指向 UTF-8 字符串的指针。

返回值:Java 字符串对象。如果无法构造该字符串,则为NULL。 抛出: OutOfMemoryError:如果系统内存不足。

jsize GetStringUTFLength (JNIEnv *env, jstring string); 功能:以字节为单位返回字符串的 UTF-8 长度。 参数: env:JNI 接口指针。 string:Java 字符串对象。 返回值: 返回字符串的 UTF-8

const char* GetStringUTFChars (JNIEnv*env, jstring string, jboolean *isCopy);

功能:返回指向字符串的 UTF-8 字符数组的指针。该数组在被

ReleaseStringUTFChars() 释放前将一直有效。如果 isCopy不是 NULL,*isCopy 在复制完成后即被设为 JNI_TRUE。如果未复制,则设为JNI_FALSE。

参数: env:JNI 接口指针。 string:Java 字符串对象。 isCopy:指向布尔值的指针。

返回值: 指向 UTF-8 字符串的指针。如果操作失败,则为 NULL。

void ReleaseStringUTFChars (JNIEnv *env, jstring string, const char *utf);

功能:通知虚拟机平台相关代码无需再访问 utf。utf 参数是一个指针,可利用 GetStringUTFChars() 获得。 参数: env:JNI 接口指针。 string:Java 字符串对象。 utf:指向 UTF-8 字符串的指针。

////////////////////////////////////////////////////////////////////////////////////////////////////////////// 六、数组操作

jsize GetArrayLength (JNIEnv *env, jarray array); 功能:返回数组中的元素数。 参数:env:JNI 接口指针。 array:Java 数组对象。 返回值: 数组的长度。

jarray NewObjectArray (JNIEnv *env, jsize length, jclass elementClass, jobject initialElement);

功能:构造新的数组,它将保存类 elementClass 中的对象。所有元素初始值均设为 initialElement。 参数: env:JNI 接口指针。 length:数组大小。

elementClass:数组元素类。

initialElement:初始值。可以为NULL 。

返回值:Java 数组对象。如果无法构造数组,则为 NULL。 抛出: OutOfMemoryError:如果系统内存不足。

说明: 使用该函数时,为了便于易操作性,我们一般可以用jobjectArray数组类型或得返回值,例如:

jobjectArray objArray = env->NewObjectArray ( );//操作该对象 env->GetObjectArrayElement (objArray, 0);//获得该object数组在索引0处的值 ,(可以强制转换类型).

jobject GetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index);

功能:返回 Object 数组的元素。 参数: env:JNI 接口指针。 array:Java 数组。 index:数组下标。 返回值: Java 对象。

抛出: ArrayIndexOutOfBoundsException:如果 index 不是数组中的有效下标。

void SetObjectArrayElement (JNIEnv *env, jobjectArray array, jsize index, jobject value);

功能:设置 Object 数组的元素。 参数: env:JNI 接口指针。

array:Java 数组。 index:数组下标。 value:新值。

抛出: ArrayIndexOutOfBoundsException:如果 index 不是数组中的有效下标。

ArrayStoreException:如果 value 的类不是数组元素类的子类。

NewArray方法类型

NativeType NewArray (JNIEnv *env, ArrayType array, jboolean*isCopy);

说明: 用于构造新基本类型数组对象的一系列操作。下表说明了特定的基本类型数组构造函数。用户应把

NewArray 替换为某个实际的基本类型数组构造函数例程名(见下表),然后将 ArrayType替换为 该例程相应的数组类型。

参数: env : JNI 接口指针。 length:数组长度。

返回值: Java 数组。如果无法构造该数组,则为 NULL。

NewArray 方法组 数组类型

NewBooleanArray() jbooleanArray NewByteArray() jbyteArray

NewCharArray() jcharArray

NewShortArray() jshortArray NewIntArray() jintArray NewLongArray() jlongArray NewFloatArray() jfloatArray NewDoubleArray() jdoubleArray

GetArrayElements 方法类型

NativeType *GetArrayElements (JNIEnv *env, ArrayType array, jboolean*isCopy);

说明:一组返回基本类型数组体的函数。结果在调用相应的ReleaseArrayElements()函数前将一直有效。

由于返回的数组可能是 Java 数组的副本,因此对返回数组的更改不必在基本类型数组中反映出来,直到调用了

ReleaseArrayElements()。 如果 isCopy 不是 NULL,*isCopy 在复制完成后即被设为 JNI_TRUE。如果未复制,则设为JNI_FALSE。 使用说明:

将 GetArrayElements 替换为表中某个实际的基本类型元素访问器例程名。

将 ArrayType 替换为对应的数组类型。

将 NativeType 替换为该例程对应的本地类型。 参数: env:JNI 接口指针。 array:Java 字符串对象。


JNI学习积累之一 - - 常用函数大全(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:体育大课间活动安排表

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: