JNI对象操作
2013-08-29 14:33
106 查看
AllocObject
jobject AllocObject(JNIEnv *env, jclass clazz);分配新
Java 对象而不调用该对象的任何构造函数。返回该对象的引用。
clazz
参数务必不要引用数组类。
参数:
env:JNI 接口指针。
clazz:Java
类对象。
返回值:
返回 Java
对象。如果无法构造该对象,则返回
NULL。
抛出:
InstantiationException:如果该类为一个接口或抽象类。
OutOfMemoryError:如果系统内存不足。
NewObject
NewObjectA
NewObjectV
jobject NewObject(JNIEnv *env, jclass clazz,jmethodID methodID, ...);
jobject NewObjectA(JNIEnv *env, jclass clazz,
jmethodID methodID, jvalue *args);
jobject NewObjectV(JNIEnv *env, jclass clazz,
jmethodID methodID, va_list args);
构造新
Java 对象。方法 ID指示应调用的构造函数方法。该 ID
必须通过调用
GetMethodID()获得,且调用时的方法名必须为 ,而返回类型必须为
void(
V)。
clazz参数务必不要引用数组类。
NewObject
编程人员应将传递给构造函数的所有参数紧跟着放在methodID
参数的后面。
NewObject()收到这些参数后,将把它们传给编程人员所要调用的 Java 方法。
NewObjectA
编程人员应将传递给构造函数的所有参数放在 jvalues类型的数组
args中,该数组紧跟着放在
methodID参数的后面。
NewObject()收到数组中的这些参数后,将把它们传给编程人员所要调用的 Java 方法。
NewObjectV
编程人员应将传递给构造函数的所有参数放在 va_list类型的参数
args
中,该参数紧跟着放在
methodID
参数的后面。
NewObject()收到这些参数后,将把它们传给编程人员所要调用的 Java 方法。
参数:
env:JNI 接口指针。
clazz:Java
类对象。
methodID:构造函数的方法
ID。
NewObject 的其它参数:
传给构造函数的参数。
NewObjectA 的其它参数:
args:传给构造函数的参数数组。
NewObjectV 的其它参数:
args:传给构造函数的参数
va_list。
返回值:
返回 Java
对象,如果无法构造该对象,则返回
NULL。
抛出:
InstantiationException:如果该类为接口或抽象类。
OutOfMemoryError:如果系统内存不足。
构造函数抛出的任何异常。
GetObjectClass
jclass GetObjectClass(JNIEnv *env, jobject obj);返回对象的类。
参数:
env:JNI 接口指针。
obj:Java 对象(不能为
NULL)。
返回值:
返回 Java
类对象。
IsInstanceOf
jboolean IsInstanceOf(JNIEnv *env, jobject obj,jclass clazz);
测试对<
b350
/span>象是否为某个类的实例。
参数:
env:JNI 接口指针。
obj:Java 对象。
clazz:Java
类对象。
返回值:
如果
可将 obj强制转换为
clazz,则返回
JNI_TRUE。否则返回
JNI_FALSE。
NULL对象可强制转换为任何类。
IsSameObject
jboolean IsSameObject(JNIEnv *env, jobject ref1,jobject ref2);
测试两个引用是否引用同一 Java 对象。
参数:
env:JNI 接口指针。
ref1:Java 对象。
ref2:Java 对象。
返回值:
如果
ref1和
ref2
引用同一 Java 对象或均为
NULL,则返回
JNI_TRUE。否则返回
JNI_FALSE。
相关文章推荐
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- 利用JNI进行对象操作
- 利用JNI进行对象操作
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- 利用JNI进行对象操作
- 利用JNI进行对象操作
- JNI全攻略之——操作Java对象的属性
- 利用JNI进行对象操作
- [转载]JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- jni-jobject操作对象
- 五、JNI提供的函数介绍(一):类和对象操作
- 利用JNI进行对象操作
- JNI中如何在本地代码中生成和操作Java的对象和字符串,并编写应用实例
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
- JNI学习积累之三 - 操作JNI函数以及复杂对象传递
- JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递