回调方法java(回调方法怎么写)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
本篇文章给大家谈谈回调方法java,以及回调方法怎么写对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
Java 技巧:用 Java 实现回调例程
熟悉 MS Windows 和 X Window System 事件驱动编程模型的开发人员 习惯于传递在某种事件发生时调用(即 回调 )的函数指针 Java 的面向对象模型目前并不支持方法指针 这样似乎就不可能使用这种很好的机制 但我们并不是一点办法都没有! Java 的接口支持提供了一种获得回调的等价功能的机制 其技巧就是 定义一个简单接口 并在该接口中声明我们要调用的方法 例如 假定我们希望在某个事件发生时得到通知 我们可以定义一个接口 public interface InterestingEvent{// 这仅是一个常规方法 因此如果需要 // 它可有返回值 也可接收参数 public void interestingEvent ();}这使得我们可以控制实现该接口的类的任何对象 因此 我们不必关心任何外部类型信息 与在将 C++ 代码用于 Motif 时使用窗口小部件的数据域来容纳对象指针的难以控制的 C 函数相比 这种方法要好得多 发出事件信号的类必须等待实现了 InterestingEvent 接口的对象 并在适当时候调用 interestingEvent() 方法 public class EventNotifier{private InterestingEvent ie;private boolean somethingHappened;public EventNotifier (InterestingEvent event){// 保存事件对象以备后用 ie = event;// 还没有要报告的事件 somethingHappened = false;}// public void doWork (){// 检查在别处设置的谓词 if (somethingHappened){// 通过调用接口的这个方法发出事件信号 ie interestingEvent ();}// }// }在上例中 我使用 somethingHappened 谓词来跟踪是否应触发事件 在许多情况下 调用此方法足以保证向 interestingEvent() 发出信号 希望接收事件通知的代码必须实现 InterestingEvent 接口 并将自身引用传递给事件通知程序 public class CallMe implements InterestingEvent{private EventNotifier en;public CallMe (){// 创建事件通知程序 并将自身引用传递给它 en = new EventNotifier (this);}// 为事件定义实际的处理程序 public void interestingEvent (){// 噢!必定发生了感兴趣的事件!// 执行某些操作 }// } lishixinzhi/Article/program/Java/JSP/201311/19423

C回调java几种方法
C代码回调java方法
① 找到字节码对象
//jclass (FindClass)(JNIEnv, const char*);
//第二个参数 要回调的java方法所在的类的路径 "com/itheima/callbackjava/JNI"
② 通过字节码对象找到方法对象
//jmethodID (GetMethodID)(JNIEnv, jclass, const char, const char);
第二个参数 字节码对象 第三个参数 要反射调用的java方法名 第四个参数 要反射调用的java方法签名
javap -s 要获取方法签名的类的全类名 项目/bin/classes 运行javap
③ 通过字节码创建 java对象(可选) 如果本地方法和要回调的java方法在同一个类里可以直接用 jni传过来的java对象 调用创建的Method
jobject obj =(*env)-AllocObject(env,claz);
当回调的方法跟本地方法不在一个类里 需要通过刚创建的字节码对象手动创建一个java对象
再通过这个对象来回调java的方法
需要注意的是 如果创建的是一个activity对象 回调的方法还包含上下文 这个方法行不通!!!回报空指针异常
④ 反射调用java方法
//void (CallVoidMethod)(JNIEnv, jobject, jmethodID, ...);
第二个参数 调用java方法的对象 第三个参数 要调用的jmethodID对象 可选的参数 调用方法时接收的参数
Java 什么是回调
所谓回调,就是客户程序Client调用服务程序Service中的某个方法A,然后Service又在某个时候反过来调用Client中的某个方法B,对于Client来说,这个B便叫做回调函数
回调实现的步骤
1、定义回调接口和回调方法
2、Client实现回调接口和回调方法,并在Client中包含Service引用,通过引用调用Servie中的方法并且必须传入一个当前对象Client(因为当前对象实现了CallBack接口所以也属于接口对象)
3、在Service中定义一个接口对象并在方法中对初始化(将Client传过来的当前对象赋值给接口对象),通过接口对象调用接口中方法(调用的Client实现的接口方法)
4、测试
java 如何写回调方法
public class Caller
{
public MyCallInterface mc;
public void setCallfuc(MyCallInterface mc)
{
this.mc= mc;
}
public void call(){
this.mc.method();
}
}
接口
public interface MyCallInterface
{
public void method();
}
测试
public class B implements MyCallInterface
{
public void method()
{
System.out.println("回调");
}
public static void main(String args[])
{
Caller call = new Caller();
call.setCallfuc(new B());
call.call();
}
}
回调方法java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于回调方法怎么写、回调方法java的信息别忘了在本站进行查找喔。
