详解Java回调机制 (Callback) 讲解+实例
Java中的回调(callback)是很重要的一个概念,spring整合hibernate大量使用了这种技术。
究竟怎样才是回调呢?
这是网上最多见到的说明:
1.class A,class B
2.class A实现接口callback
3.class B拥有一个参数为callback接口类型的函数
4.class A运行时调用class B中的函数,以自身传入参数
5.class B已取得A,就可以随时回调A所实现的callback接口中的方法
下面我举一个例子:
中国电信(ChinaTelecom)是移动运营商之一,想必近两年满天飞的“天翼3G”大家都知道吧。空中网(KongNet)是那个总是喊“用手机看NBA”的服务提供商(ServiceProvider,简称“SP”)。
移动运营商和SP合作才能为我们广大移动用户提供各种服务。比如音乐,彩铃,手机看NBA等等。
这里有一个接口ServiceProvider,也就是Callback接口;
/**
* 与中国电信合作的sp实现此接口即可
* 这个就是Callback接口
* @author wanghe
*
*/
public interface ServiceProvider {
/**
* sp可以自定义提示
*/
public void customHint();
}
一个ChinaTelecom类,即class B;
/**
* 中国电信
* @author wanghe
*
*/
public class ChinaTelecom {
private ServiceProvider sp;//callback接口作为属性
public void setSp(ServiceProvider sp) {
this.sp = sp;
}
/**
* 初始化
*/
public void init(){
System.out.println("Welcome, This is ChinaTelecom! ");
sp.customHint();//sp自定义的操作
}
}
一个KongNet类,即 class A
/**
* 服务提供商(SP)--空中网
* @author wanghe
*
*/
相关文档:
最近项目中有需要用到股价,于是在网上找了一番,没有一个直接就能用的。自己摸索了一下,终于搞定一个顾大家参考。
package test;
import java.util.Arrays;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
/**
*
* 功能概述:<br>
* ......
核心提示:本文描述了在J2me中开发主要使用的网络连接方法,分别详细介绍了使用http和socket两种方法。 HttpConnection 首先我们先来看一个简单的例子吧: 主要用到的java包: javax.microedition.io.*; public String requestGET(String URLString,String URL) throws
本文描述了在J2me中开发主要使用的网络连接方法, ......
首先我们应该对 JDK,JRE,JVM 有所认知,下面这个图就可以清晰的表述他们的关系: JDK,JRE,JVM 的关系 一个更复杂的图:这是 J2SE 1.5 具体功能图表,在图的左边,我们可以清晰的看出哪些是JVM的范畴,哪些是JRE的范畴,哪些是JDK的范畴。 Java程序的执行逻辑 下面图演示的是如何打造一个个性化的Java启动器 ......
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构。这些类均在java.util包中。本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类。
Collection
├List& ......
package cn.com;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class Base64Test
{
public static void main(String[ ......