JAva jni GetFieldIDとGetMethodIDおよびパラメータの説明
1199 ワード
GetFieldID
手に入れる
java
クラス内のパラメータID、
GetMethodID
に届く
java
クラス内のメソッドのID.クラス内でpublicと宣言されたパラメータまたはメソッドのみを呼び出すことができます.jfieldID topicFieldId=env->
GetFieldID
(objectClass,"name", "L
java
/lang/String;"); jmethodID getcName=env->
GetMethodID
(objectClass,"getcatName","()L
java
/lang/String;");
最初のパラメータはJavaクラスオブジェクトです.2番目のパラメータはパラメータ(またはメソッド名)、3番目のパラメータはパラメータ(またはメソッド)の署名です.3番目のパラメータは以下の方法で得られる.
クラスpublic class Cat{
例えばCatクラスがCatのあるディレクトリに入る前に
java
c Cat.
java
コンパイルしてコマンドを入力:Javap–s Cat
CatメソッドgetcatNameの署名を得るには()L
java
/lang/String、Catクラスのパラメータはprivateなので署名していません.
手に入れる
java
クラス内のパラメータID、
GetMethodID
に届く
java
クラス内のメソッドのID.クラス内でpublicと宣言されたパラメータまたはメソッドのみを呼び出すことができます.jfieldID topicFieldId=env->
GetFieldID
(objectClass,"name", "L
java
/lang/String;"); jmethodID getcName=env->
GetMethodID
(objectClass,"getcatName","()L
java
/lang/String;");
最初のパラメータはJavaクラスオブジェクトです.2番目のパラメータはパラメータ(またはメソッド名)、3番目のパラメータはパラメータ(またはメソッド)の署名です.3番目のパラメータは以下の方法で得られる.
クラスpublic class Cat{
private int catNumber;
String catName;
public Cat(int i,String name)
{catNumber=i;catName=name;}
public String getCatName ()
{
return
this
.catName;}
public void setCatName (String catName)
{
this
.catName=catName;}
}
例えばCatクラスがCatのあるディレクトリに入る前に
java
c Cat.
java
コンパイルしてコマンドを入力:Javap–s Cat
CatメソッドgetcatNameの署名を得るには()L
java
/lang/String、Catクラスのパラメータはprivateなので署名していません.