のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

JNIでオブジェクトのオブジェクトのメンバーにアクセスしたいとき

class status
{
    Contrast mContrast;
}
class Contrast
{
    int mValue; <=これにアクセスしたいとき。
}
JNIEXPORT jint JNICALL java_func(
	JNIENV *env,
	jobject thiz,
	jobject statusObject)
{
	jfieldID contrastId	= (*env)->GetFieldID(env, statusObject, "mContrast", "Ljp/co/myapp/Contrast;");
	jobject	contrastObject	= (*env)->GetObjectField(env, statusObject, contrastId);

	jobject contrastClazz 	= (*env)->GetObjectClass(env, contrastObject);
	jfieldID valueId 	= (*env)->GetFieldID(	env, contrastClazz, "mValue",	"I");
	jint 	value		= (*env)->GetIntField(	env, contrastObject, valueId);

 (…略…)

}