我正在上的cocos2d-X平台的插件项目,我想编写C++封装接口,通过调用Java方法JNI从jarSDK.我知道如何使用JNI来调用静态java方法,但我对java函数中的interface参数感到困惑.我有一个处理回调的cpp函数指针:
typedef void (* MyCallback)(int responseCode, string arg1, set<string> arg2);
Run Code Online (Sandbox Code Playgroud)
我想写一个cpp包装器方法,如:
static void MyCpp::setTags(set<string> tags, MyCallback callback) //it use `JNI` to invoke java method setTags(Context context, Set<String> tags, TagCallback callback).
Run Code Online (Sandbox Code Playgroud)
我想在包装器中调用的java方法是
public static void setTags(Context context, Set<String> tags, TagCallback callback)
Run Code Online (Sandbox Code Playgroud)
并且TagCallback是API用户实现的接口.那么,是否有可能TagCallback最终回调MyCallback函数?换句话说,我可以使用jni将cpp函数指针转换为java接口吗?谢谢你的耐心 .
编辑:setTag如果用户只想使用java,
这里是如何使用:
public static void setTags(context, tags, new TagCallback{
@Override
public void callback(int arg0, String arg1, Set<String> arg2) {
// TODO Auto-generated method stub …Run Code Online (Sandbox Code Playgroud)