gpt4 book ai didi

java - 将 JNI 基本类型放入同一数组中

转载 作者:行者123 更新时间:2023-12-01 12:48:26 24 4
gpt4 key购买 nike

我正在尝试编写带有给定参数的静态Java方法,搜索并调用方法。

该方法应该具有可变数量的参数,并且必须从 C++ 调用。我尝试了几种选择,但无法完成。这可能吗?

到目前为止,我可以存储它包含的类型和位置,并且我可以将 jobject 和 jstring 放在同一个数组中。

如果这是不可能的,是否可以使用 Java 反射引用从 JNI 找到的 methodID,或者以某种方式传递对 long 对象的引用。这样的结构就可以了,因为我可以将 64 位整数转换为其他所有内容。

最佳答案

如果您在 JNI 中需要该数组,请使用 jvalue union 类型作为数组类型。例如:jvalue myArray* = { (jint) 1, (jlong​​) 1000, (jboolean) false }

Java 不支持 jvalue 也不支持可变参数函数,因此如果您需要将基元数组从 Java 传递到 JNI 作为解决限制的方法,您应该使用具有基元对象包装器(如 java)的对象数组.lang.Integer 并根据 JNI 中的类型调用值函数。这是可能的,只是实现起来很痛苦。

关于java - 将 JNI 基本类型放入同一数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24457175/

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