java的回调

1,明确什么是回调方法

2,采用接口来实现回调

java同步回调

一个类实现了接口,将他传递给另一个类,在另一个类调用接口中方法

public class Bar implements Foo.FooCallback {

    public void eatFood() {
System.out.println("in eatFood() ");
} //这是回调方法
@Override
public void eat(String food) {
System.out.println("【@】" + food);
} }
public class Foo{

   public FooCallback fooCallback;

   public Foo(FooCallback fooCallback) {
this.fooCallback = fooCallback;
} public interface FooCallback{
public void eat(String food);
} public void say() {
fooCallback.eat("西安蛋炒饭");
} }
public class demo {
public static void main(String args[]) {
Bar bar = new Bar();
Foo foo = new Foo(bar);
foo.say();
}
}

java异步回调

其实和同步回调差不多,只是新开线程,然后在新线程中回调接口中的方法

public interface EatRice {
public void eat(String food);
}
public class XiaoMing implements EatRice {

    public void say() {

    }

    @Override
public void eat(String food) {
System.out.print("小明和小李一起去吃" + food);
}
}
public class XiaoLi {// 小李

    protected EatRice er;

    public void setEatRiceListener(EatRice er, String food) {
this.er = er;
washFace(food);
} public void washFace(String food) { System.out.print("小李要洗漱"); new Thread(new Runnable() { @Override
public void run() {
try {
// 小李洗漱的同时小明玩手机,开启线程实现异步
play(); Thread.sleep();
System.out.print("10秒后 ");
// B调用A的方法
er.eat(food);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
} public void play() {
System.out.println(" 小明要玩手机");
} }
    public static void main(String[] args) {

        EatRice er = new XiaoMing();
new XiaoLi().setEatRiceListener(er, "小龙虾");
}

java的回调的更多相关文章

  1. Java学习之Java接口回调理解

    Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员 ...

  2. java基础-回调函数(callback)

    java基础-回调函数(callback) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数 ...

  3. Java:回调机制

    引用:http://blog.sina.com.cn/s/blog_48cf38890100go6x.html 1.  什么是回调函数    回调函数(callback Function),顾名思义, ...

  4. 16)JAVA实现回调(Android,Swing中各类listener的实现)

           熟悉MS-Windows和X Windows事件驱动设计模式的开发人员,通常是把一个方法的指针传递给事件源,当某一事件发生时来调用这个方法(也称为"回调").Java ...

  5. java中回调函数的理解

    一,案例一 "通常大家说的回调函数一般就是按照别人(李四)的定好的接口规范写,等待别人(张三)调用的函数,在C语言中,回调函数通常通过函数指针来传递:在Java中,通常就是编写另外一个类或类 ...

  6. java函数回调

    Class A实现接口CallBack callback--背景1 class A中包含一个class B的引用b --背景2 class B有一个参数为callback的方法f(CallBack c ...

  7. Java中回调函数编写

    package XXX.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...

  8. Java接口回调机制

    一.前言 最近在看android Fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下. 二.回调的含义和用途 1.什么是回调? 一般来说,模块之间都存在一定的调 ...

  9. java中回调函数的使用

    package com.huawei.common; import java.sql.ResultSet;import java.sql.SQLException; /** * 回调函数 * @aut ...

随机推荐

  1. springMVC_11拦截器实现登录

    一.   思路 controller实现核对用户名和密码,如果核对正确则保存到session中并且跳转到主页 系统中包含诸多界面,部分界面不需要登录即可进行访问,通过拦截器实现判断是否是不需要登录的界 ...

  2. Android破解学习之路(十六)—— dll破解的IL指令

    IL指令介绍 IL是.NET框架中中间语言(Intermediate Language)的缩写. 使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不 ...

  3. 兼容浏览器的div透明

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. express 连接数据库

    (1)创建项目 ,项目名cntMongodb express -e cntMongodbcd cntMonfodbnpm installnpm install mongoose --save //安装 ...

  5. TS学习随笔(一)->安装和基本数据类型

    去年学过一段时间的TS,但由于在工作中不常用.就生疏了,最近项目要求用TS,那我就再回去搞搞TS,写一篇记录一下自己学习TS的进度以及TS知识点 首先,关于TS的定义我就不在这描述了,想看百度一下你就 ...

  6. tornado 模板引擎

    在tornado的模板引擎中,有两种方式,UImethod与UImodule 自定义方法 在模板中调用方法: tornado:与Django一样使用{{}},但是对于for循环之类,Django以{% ...

  7. Django Admin后台管理用户密码修改

    方法一 在Terminal中执行:python manage.py changepassword your_name(其中“your_name”为你要修改密码的用户名),根据提示内容修改即可. 方法二 ...

  8. Python GUI编程实例

    import os from time import sleep from tkinter import * from tkinter.messagebox import showinfo class ...

  9. Python textwrap模块(文本包装和填充)

    textwrap提供函数wrap().fill().indent().dedent()和以及TextWrapper类. 通常包装或者填充一两个字符串使用wrap()和fill().其他情况使用Text ...

  10. NSJSONSerialization 反序列化失败 NSCocoaErrorDomain Code=3840

    NSJSONSerialization 反序列化失败 NSCocoaErrorDomain Code=3840  NSCocoaErrorDomain Code=3840 “No string key ...