【发布时间】:2013-11-28 15:45:06
【问题描述】:
我最近不得不用 Java 封装一个 C/C++ 库。其中一种方法接受一个函数作为参数。这基本上是观察者(又名监听者)模式:
void setLogFunction(const std::function<void(std::string&, std::string&)> &callback)
{
_callback = callback;
}
在 Java 端,您不能传递函数,但可以使用 log() 方法传递对象。
interface Observer {
public void log(String prefix, String message);
}
class MyLibrary {
public MyLibrary() {
initCpp();
}
public native void initCpp();
...
public native void setObserver(Observer observer);
}
如何在 JNI 中实现 setObserver()?
【问题讨论】:
标签: java java-native-interface observer-pattern