Как найти дескриптор поля объекта в JNI? - PullRequest
1 голос
/ 15 июня 2010

При вызове метода GetFieldID через переменную среды JNI необходимо указать дескриптор поля для требуемого поля.Как узнать, что такое дескриптор поля для объекта?

Пример:

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

Как мне определить, что "Ljava / lang / String;"такое дескриптор поля для объекта String?

Ответы [ 2 ]

2 голосов
/ 16 июня 2010

Инструмент javap скажет вам, что такое дескриптор поля для класса. Чтобы использовать его, перейдите в каталог с скомпилированным файлом .class для объекта с полем, к которому необходимо получить доступ, и выполните следующую команду:

javap -s -p MyClass

Эта команда распечатает все дескрипторы полей для класса.

В целом, однако, большинство (не примитивных) дескрипторов имеют форму "Lfully / qualised / name / of / MyClass;"

1 голос
/ 15 июня 2010

Документация JNI описывает, как преобразовать тип Java в строку типа, поддерживаемую JNI.Вам нужно будет знать тип, прежде чем вы получите fieldId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...