jclass object = (*env)->FindClass(env,"java/lang/Integer") // C Code
整数値を に関連付ける方法はありますobject
か? object
整数を含む/ポイントしたい。
jclass object = (*env)->FindClass(env,"java/lang/Integer") // C Code
整数値を に関連付ける方法はありますobject
か? object
整数を含む/ポイントしたい。
JNI ガイドの「落とし穴」セクションにある「Confusing jclass with jobject」を必ず読んで理解してください。
FindClass(env, "Foo")
type のオブジェクト (へのハンドル) を返しますjava.lang.Class
。概念的には静的メソッドと同等です。Class.forName(String)
パラメーターとして指定したクラスのインスタンスを返しません ( Foo
)。Class
そのクラスを表す型のオブジェクトを返します。
a jclass
(または a Class
) でできることは、必要なコンストラクターを見つけ、そのコンストラクターを呼び出して type のオブジェクトを作成することですFoo
。
JNI ガイドには、クラスの呼び出しコンストラクター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
(エラーチェックが必要です。)