gpt4 book ai didi

java - 如何使用 jvalue 数组将两个整数传递给构造函数?

转载 作者:太空宇宙 更新时间:2023-11-04 08:52:04 24 4
gpt4 key购买 nike

我正在尝试创建一个对象的实例,该实例具有一个构造函数,该构造函数通过将整数作为 jvalue 数组的成员传入来接受两个整数。当我从构造函数打印参数时,似乎只有第一个参数被正确传递,这是为什么?我的 C 和 Java 代码如下。

C代码

jclass theClass;
jmethodID theMethod;
theClass = (*env)->FindClass(env, "thepackage/TwoNumbers");
theMethod = (*env)->GetMethodID(env, theClass, "<init>", "(II)V");

jvalue args[2];
args[0].i=55;
args[1].i=6;

jobject theObj = (*env)->NewObject(env, theClass, theMethod, *args);

Java代码

package thepackage;
public class TwoNumbers {
int a;
int b;

TwoNumbers(int first, int second) {
this.a=first;
this.b=second;
System.out.println("A is "+first+" and b is "+second);
}
}

最佳答案

您正在调用带有可变长度参数列表的函数 NewObject。要使用 jvalue 参数版本,您必须调用 NewObjectA

jobject theObj=(*env)->NewObjectA(env,theClass,theMethod,*args);

参见 Documentation - NewObject

关于java - 如何使用 jvalue 数组将两个整数传递给构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19300232/

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