代码之家  ›  专栏  ›  技术社区  ›  TwentyMiles

如何在JNI中找到对象的字段描述符?

  •  1
  • TwentyMiles  · 技术社区  · 14 年前

    通过JNI环境变量调用GetFieldID方法时,需要为所需字段提供字段描述符。如何找到对象的字段描述符是什么?

    例子:

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

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   TwentyMiles    14 年前

    javap工具将告诉您类的字段描述符是什么。要使用它,请导航到包含要访问的字段的对象的已编译.class文件的目录,然后运行以下命令:

    javap -s -p MyClass
    

    此命令将打印出类的所有字段描述符。

    然而,一般来说,大多数(非灵长类)描述符的形式是“Lfully/qualified/name/of/MyClass;”。

        2
  •  1
  •   Graham Asher    9 年前

    JNI documentation 描述如何将java类型转换为JNI支持的类型字符串。在获取fieldId之前,您需要知道类型。