gpt4 book ai didi

java - 将 jobject 与值相关联

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:26 26 4
gpt4 key购买 nike

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

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

最佳答案

确保你读懂了Confusing jclass with jobject在 JNI 指南的陷阱部分。

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

您可以使用 jclass(或 Class)做的是找到您想要的构造函数,并调用该构造函数来创建 Foo 类型的对象

JNI 指南在 Invoking constructors 中有一个如何执行此操作的示例对于类 String。对 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

(需要错误检查。)

关于java - 将 jobject 与值相关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10649215/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com