2010-06-15 45 views
1

当通过JNI环境变量调用GetFieldID方法时,您需要为所需的字段提供一个字段描述符。你如何找到对象的字段描述符?如何在JNI中找到对象的字段描述符?

例子:

jfieldID strField = env->GetFieldID(myClass, "example", "Ljava/lang/String;"); 

我将如何确定 “Ljava /朗/字符串;”是字符串对象的字段描述符?

回答

2

javap工具会告诉你一个类的字段描述符是什么。要使用它,导航到与某个字段对象编译后的.class文件的目录访问和运行以下命令:

javap -s -p MyClass 

该命令将打印出所有现场描述符的类。但是,大多数(非主要性)描述符的形式是“Lfully/qualified/name/of/MyClass;”。

1

JNI documentation描述了如何将java类型转换为由JNI支持的类型字符串。你需要知道该类型,然后才能看到fieldId。

相关问题