name引数は、完全修飾クラス名または配列型 署名です。例えば、 java.lang.Stringクラスの完全修飾クラス名は次のとおりです。 「のjava/LANG /文字列」
私の質問は、Java初心者の質問、にISNクラスの署名は何でありますパッケージ化されていませんか?
name引数は、完全修飾クラス名または配列型 署名です。例えば、 java.lang.Stringクラスの完全修飾クラス名は次のとおりです。 「のjava/LANG /文字列」
私の質問は、Java初心者の質問、にISNクラスの署名は何でありますパッケージ化されていませんか?
YourClass
がデフォルトパッケージのクラスである場合、完全修飾名は単純にYourClass
です。
Javaメソッドが
public void method(YourClass x);
は、あなたが経由でメソッドを検索することができている場合:あなたはメソッドのシグネチャを見ることができます* .hファイルを生成することがあり
jmethodID m = (*env)->GetMethodID(env, javaclass, "method", "(LYourClass;)V");
ツールjavah
。
完全修飾名は、容易何かのJNI署名が `javah`ツールの出力ごとにされているJava
ありがとうございます。私は質問の束を持っています、それは別の型のオブジェクトフィールドからメソッドにアクセスするためのものです、それは動作しますか? "V"の意味は何ですか?私は別の種類の署名( "V"と括弧なし)が他にもあるか、JNIの古いバージョンの署名であると思っていますか? –
'(LYourClass;)Vは、YourClass型の1つのパラメータを持ち、voidを返すメソッドのシグネチャです。例は '(B)I'です - intを返すパラメータbooleanを持つメソッドです。 //stackoverflow.com/questions/30815284 –
を参照してください。オブジェクトのパラメータにアクセスしたいが、メソッドではなく、 'jfieldID fid =(* env) - > GetFieldID(env、myClass、" theField " 、 "LClassname"); '続いて' jobject myObj =(* env) - > GetObjectField(env、jobjectContainer、fid); 'は動作しますか? –