在JNI中使用接口

时间:2010-03-18 12:02:52

标签: java interface callback java-native-interface

我正在尝试使用(*env)->RegisterNatives将方法添加到已定义的类中,然后将其添加到回调列表中。 回调发送者当然希望我的类实现某个我不需要的接口。并且没有执行。

如果我在Java中将关键字“implements Listener”添加到我的类中,javac期望在Java中使用native或者我想在这里避免使用native关键字,因为我想在JNI_OnLoad中注册方法然后执行其中一个。

现在的问题是:我可以在JNI中实现接口还是避免使用Java中的错误消息?

1 个答案:

答案 0 :(得分:2)

RegisterNatives不会添加新的本机方法,它会为类中的现有本机方法注册本机函数。如果某人没有为本机方法调用RegisterNatives,JVM将在第一次调用方法时搜索所有DLL库以实现它。

因此,添加implements Listener,使用native关键字编写定义,并使用RegisterNatives注册其实现。