GetFieldID是得到java类中的参数ID,
GetMethodID得到java类中方法的ID,
它们只能调用类中声明为 public的参数或方法。使用如下:
jfieldID topicFieldId = env->GetFieldID(objectClass, "catName", "Ljava/lang/String;");
jmethodID getcName = env->GetMethodID(objectClass, "getCatName", "()Ljava/lang/String;");
第一个参数是Java 类对象,第二个参数是参数(或方法名),第三个参数是该参数(或方法)的签名。
例如:
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所在目录 先用javac Cat.java
进行编译 然后输入命令:Javap –s Cat
得到Cat方法 getCatName 的签名是()Ljava/lang/String,Cat类中的参数是private 所以它没有签名。
在Kotlin中如果想要查看签名,可以如下步骤操作:
1.先打开需要查看的 .kt 类,并鼠标单击到类中选中该类;
2.然后Tools-->Kotlin-->Show Kotlin Bytecode

3.在打开的Bytecode界面中搜寻到对应方法或参数,就能看到对应的签名了;
例如:


网友评论