java回调函数举例,详解Java回调机制 (Callback) 讲解+实例

详解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

*

*/

相关文档:

事实上网络编程简单的理解就是两台计算机相互通讯数据而已。对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了。Java SDK提供一些相对简单的Api来完成这些工作,Socket就是其中之一。

对于Java而言。这些Api存在与Java.net这个包里面。因此只要导入这个包就可以准备网络编程了。网络� ......

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随 ......

Java读文件写文件操作

By Aillo on March 27, 2008 7:56 PM | 0 Comments | Previous | Next | EDIT

这里,Java的读文件和写文件都是基于字符流的,主要用到下面的几个类:

1、FileReader----读取字符流

2、FileWriter----写入字符流

3、BufferedReader----缓冲指定文件的输入

该类的方法有: ......

1.继承的基本概念

当多个类之间存在相同的属性和方法时,在父类中定义这些相同的属性和方法,所有的子类无需重新定义这些属性和方法,只需要通过extends语句声明继承Base类。

(1)继承的东西

a.当sub类和base类位于同一个包中时,su ......

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[ ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java函数是一种常见的编程模式,它允许我们将一个函数作为参数传递给另一个函数,并在需要时执行该函数。下面是一个Java函数的例子: 假设我们有一个主业务类MainBusiness,它需要执行一些操作,并在完成后执行函数。我们可以定义一个接口CallbackService,该接口包含一个函数callBackFunc()。然后我们可以创建一个具体的实现类CallbackServiceImpl,该类实现了CallbackService接口,并重写了函数callBackFunc()。最后,我们可以在测试类CallBckTest中创建一个MainBusiness对象,并用它的execute()方法,将CallbackServiceImpl对象作为参数传递给它,从而实现函数用。 具体代码如下: 引用: ``` package com.callBack; public class CallbackServiceImpl implements CallbackService { @Override public void callBackFunc() { System.out.println("具体实现类函数开始执行..."); System.out.println("具体实现类函数结束执行...\n"); } } ``` 引用: ``` package com.callBack; public class CallBckTest { public static void main(String[] args) { MainBusiness mainBusiness = new MainBusiness(); System.out.println("*********具体实现类实现的方法_固定*********"); mainBusiness.execute(new CallbackServiceImpl()); System.out.println("*********匿名内部类实现的方法_灵活*********"); mainBusiness.execute(new CallbackService() { public void callBackFunc() { System.out.println("匿名内部类函数开始执行..."); System.out.println("匿名内部类函数结束执行...\n"); } }); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值