當通過JNI環境變量調用GetFieldID方法時,您需要爲所需的字段提供一個字段描述符。你如何找到對象的字段描述符?如何在JNI中找到對象的字段描述符?
例子:
jfieldID strField = env->GetFieldID(myClass, "example", "Ljava/lang/String;");
我將如何確定 「Ljava /朗/字符串;」是字符串對象的字段描述符?
當通過JNI環境變量調用GetFieldID方法時,您需要爲所需的字段提供一個字段描述符。你如何找到對象的字段描述符?如何在JNI中找到對象的字段描述符?
例子:
jfieldID strField = env->GetFieldID(myClass, "example", "Ljava/lang/String;");
我將如何確定 「Ljava /朗/字符串;」是字符串對象的字段描述符?
javap工具會告訴你一個類的字段描述符是什麼。要使用它,導航到與某個字段對象編譯後的.class文件的目錄訪問和運行以下命令:
javap -s -p MyClass
該命令將打印出所有現場描述符的類。但是,大多數(非主要性)描述符的形式是「Lfully/qualified/name/of/MyClass;」。
JNI documentation描述瞭如何將java類型轉換爲由JNI支持的類型字符串。你需要知道該類型,然後才能看到fieldId。