Re: About FileXXXputStream 's implementation
???????? schrieb:
On 11??17??, ????8??19??, Thomas Fritsch
<i.dont.like.s...@invalid.com> wrote:
???????? schrieb:
what's the native initIDs method of it used for?The initID method typically gets some JNI method IDs of the
FileXXXStream class and stores them somewhere in the C code. Later,
other native methods of the class can use these cached method IDs to
call the non-native methods of the class.
By using the first two, I'm sorry,
"env" and "jobject"
en,but initIDs is a static native method, lack the "jobject"...
You don't need it for getting method or field IDs.
however,
this method is only called once in the static area,what did it store
in C code?
It might do for example look below:
#include "FileInputStream.h"
static jmethodID readMethodID;
static jmethodID closeMethodID;
void Java_FileInputStream_initIDs(JNIEnv *env, jclass c)
{
readMethodID = env->GetMethodID(env, c, "read", "()I");
closeMethodID = env->GetMethodID(env, c, "close", "()V");
}
void Java_FileInputStream_exampleMethod(JNIEnv *env, jobject obj)
{
env->CallVoidMethod(env, obj, closeMethodID);
}
By the way: If you want a deeper understanding of JNI, I suggest you
work through Sun's JNI tutorial and/or a text-book.
--
Thomas