Объект нативного класса в Java? - PullRequest
1 голос
/ 25 апреля 2011

Можно ли объявить объект нативного класса (в c ++) в Java (Android SDK)?

Ответы [ 3 ]

1 голос
/ 17 мая 2011

Единственным решением было бы создание библиотеки JNI, которая служила бы в качестве уровня связи между вашим кодом Java и C ++.

Что Lib должен будет:

1- Содержит методы, которые получают необходимые объекты Java как JObject. (посмотрите этот пост, чтобы узнать, как использовать объект задания: как передать экземпляр класса Java в качестве параметра методу JNI?

2 - запросить ваши объекты C ++ для вашего собственного кода

3- Делайте все, что вам нужно, с обоими объектами.

Надеюсь, это поможет;)

Ура!

0 голосов
/ 25 апреля 2011

Нет. Единственные объекты, которые распознает Java, - это объекты Java.

Подход JNI позволяет вам создать собственный метод для класса Java, а метод JNI, реализованный в C / C ++, может создавать другие объекты C / C ++. Однако вы не можете передать такой объект обратно в Java, чтобы код Java мог использовать его напрямую.

0 голосов
/ 25 апреля 2011

Собственные классы, которые объявлены и определены в c ++.

Однако, когда вы используете JNI, вы определяете класс Java с нативным методом и генерируете код C из этого для реализации, используя javah

...