我有在 C++ 中实现观察者模式的代码。我创建了类似于 C++ 代码的 Java JNI 代码来注册观察者。当我在 Java 中注册一个观察者时,它会调用一个native
在 C++ 中创建一个监听器的方法。
我希望 C++ 中的方法调用调用我注册的 Java 观察者中的等效方法。我通过将 传递给 C++ 中的观察者类为此创建了代码JNIEnv
,但我听说这不安全。这种类型的实施是否有最佳实践?
我有在 C++ 中实现观察者模式的代码。我创建了类似于 C++ 代码的 Java JNI 代码来注册观察者。当我在 Java 中注册一个观察者时,它会调用一个native
在 C++ 中创建一个监听器的方法。
我希望 C++ 中的方法调用调用我注册的 Java 观察者中的等效方法。我通过将 传递给 C++ 中的观察者类为此创建了代码JNIEnv
,但我听说这不安全。这种类型的实施是否有最佳实践?
您可以根据这个问题的答案使用SWIG导向器: How to pass java function pointer to c++ native code
我还建议直接使用 SWIG 而不是 JNI。