繁体   English   中英

将jobject与值关联

[英]associating jobject with a value

jclass object = (*env)->FindClass(env,"java/lang/Integer") // C Code

我有什么办法可以将数值与object关联? 我希望object包含/指向整数。

确保已阅读JNI指南的“ 陷阱”部分中的将Jobclass与Jobject混淆的理解。

FindClass(env, "Foo")返回java.lang.Class类型的对象(的句柄)。 从概念上讲,它等效于Class.forName(String)静态方法:它不会返回您作为参数提供的类的实例( Foo )。 它返回代表该类的Class类型的对象。

使用jclass (或Class )可以执行的jclass是找到所需的构造函数,然后调用该构造函数来创建Foo类型的对象。

JNI指南中有一个示例,说明如何在类StringInvoking构造函数中执行此操作。 除了方法签名外,对Integer类执行此操作相似。

您将执行以下操作:

jclass clazz = (*env)->FindClass(env, "java/lang/Integer");
jmethodID mid = (*env)->GetMethodID(env, clazz, "<init>", "(I)V");
jobject mint = (*env)->NewObject(env, clazz, mid, 42); // your desired value here

(需要错误检查。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM