3
최근에는 자바 얼굴로 C/C++ 라이브러리를 래핑해야했습니다. 메서드 중 하나는 함수를 매개 변수로 받아들입니다. 당신이 함수를 통과 할 수 있지만 로그() 메소드를 사용하여 개체를 전달할 수있는 자바 측면에서JNI에서 Observer 패턴을 구현하는 방법
void setLogFunction(const std::function<void(std::string&, std::string&)> &callback)
{
_callback = callback;
}
: 이것은 기본적으로 옵저버 (일명 리스너) 패턴이다.
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()를 구현합니까?