Ява — общий тип указателя в hawtjni

Я хочу типизировать общий указатель в hawtjni (написано на языке Java) который будет генерировать JNI для c++ исходный код. Я немного погуглил и обнаружил, что общий указатель не поддерживается в Java. Теперь я не уверен, что лучше всего будет ввести общий указатель в hawtjni чтобы C++ Код может понять, что будет вызвана функция с общим указателем.

Например, есть тестовый пример для операции слияния, который требует общего указателя для некоторой инициализации ‘, например:
файл option.h (написанный на c ++)

std::shared_ptr<MergeOperator> merge_operator = nullptr;

hawtjni (.java) реализация:

 @JniField(cast="rocksdb::MergeOperator*")
private long  merge_operator;

Ошибка: во время бега mvn clean install

[INFO] src/rocksdbjni_structs.cpp: In function ‘void setNativeOptionsFields(JNIEnv*, jobject, rocksdb::Options*)’:
[INFO] src/rocksdbjni_structs.cpp:258:89: error: invalid cast from type ‘std::shared_ptr<rocksdb::MergeOperator>’ to type ‘intptr_t {aka long int}’
[INFO]   env->SetLongField(lpObject, NativeOptionsFc.merge_operator, (jlong)(intptr_t)lpStruct->merge_operator);

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]