通过JNI环境变量调用GetFieldID方法时,需要为所需字段提供字段描述符。你如何找到对象的字段描述符是什么?
示例:
jfieldID strField = env->GetFieldID(myClass, "example", "Ljava/lang/String;");
我如何确定“Ljava / lang / String;”是String对象的字段描述符吗?
答案 0 :(得分:2)
javap工具将告诉您类的字段描述符是什么。要使用它,请导航到包含要编辑的字段的已编译.class文件的目录,并运行以下命令:
javap -s -p MyClass
此命令将打印出该类的所有字段描述符。
但是,一般而言,大多数(非主要)描述符的形式为“Lfully / qualified / name / of / MyClass;”。
答案 1 :(得分:1)
JNI documentation描述了如何将java类型转换为JNI支持的类型字符串。在到达fieldId之前,您需要知道类型。