您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: