如何在C ++中实现观察者模式,在JNI中调用Java方法

时间:2014-02-13 04:52:24

标签: java c++ java-native-interface observer-pattern jnienv

我有在C ++中实现观察者模式的代码。我创建了类似于C ++代码的Java JNI代码来注册观察者。当我在Java中注册观察者时,它调用{C}的一个native方法来创建一个监听器。

我希望C ++中的方法调用能够调用已注册的Java观察者中的等效方法。我已经通过将JNIEnv传递给C ++中的观察者类来为此创建代码,但我听说这不安全。这种实施方式是否有最佳实践?

1 个答案:

答案 0 :(得分:0)

根据此问题的答案,您可以使用SWIG个导演:How to pass java function pointer to c++ native code

我还建议直接使用SWIG而不是JNI。