gpt4 book ai didi

java - 如何取回 jobjectArray 的原始元素?

转载 作者:行者123 更新时间:2023-12-01 15:39:33 25 4
gpt4 key购买 nike

我有一个 Java 函数,它将接收可变数量的参数,并且在 JNI 中我接收 jobjectArray 中的所有参数。现在我的问题是:如何以原始形式返回参数(它们可以是字符串、 double 组、整数...)?

编辑:(基于评论)

这是详细信息。这是我的函数声明:

private native double gsl_stats_all_in_one(String...str); 

这是我的函数调用:

variance = this.gsl_stats_all_in_one((String)message.getBody().get("function2"), 
Ar‌​rays.toString(data), "1","5");

这是函数定义:

JNIEXPORT jdouble JNICALL Java_org_bel_MyJMSListenerAction_gsl_1stats_1all_1in_1one (JNIEnv *env, jobject obj, jobjectArray arr) 

现在我的 arr 拥有所有 4 个参数,其中第一个是字符串,第二个是 double ,第三个和第四个是整数。我怎样才能恢复所有四个参数的原始形式。

最佳答案

jobjectArray 不包含整型、 double 或任何原始类型。它包含对象。 jintArray 包含整数等。您需要重新考虑您的问题。如果您尝试声明 native 可变参数方法,则最终参数确实是一个 jobjectArray 并且它包含对象。如果你的Java代码传递int、double等,它们会被转换为Integer、Double等,所以你在native方法中收到的始终是一个对象。您可以在运行时通过常用的 JNI 调用询问每个项目的类。

关于java - 如何取回 jobjectArray 的原始元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8294291/

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