jvalue 配列のメンバーとして int を渡すことによって、2 つの int を取るコンストラクタを持つオブジェクトのインスタンスを作成しようとしています。コンストラクターから引数を出力すると、最初の引数だけが正しく渡されているように見えますが、これはなぜでしょうか? 私の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);
}
}