java的回调
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的回调的更多相关文章
- Java学习之Java接口回调理解
Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员 ...
- java基础-回调函数(callback)
java基础-回调函数(callback) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数 ...
- Java:回调机制
引用:http://blog.sina.com.cn/s/blog_48cf38890100go6x.html 1. 什么是回调函数 回调函数(callback Function),顾名思义, ...
- 16)JAVA实现回调(Android,Swing中各类listener的实现)
熟悉MS-Windows和X Windows事件驱动设计模式的开发人员,通常是把一个方法的指针传递给事件源,当某一事件发生时来调用这个方法(也称为"回调").Java ...
- java中回调函数的理解
一,案例一 "通常大家说的回调函数一般就是按照别人(李四)的定好的接口规范写,等待别人(张三)调用的函数,在C语言中,回调函数通常通过函数指针来传递:在Java中,通常就是编写另外一个类或类 ...
- java函数回调
Class A实现接口CallBack callback--背景1 class A中包含一个class B的引用b --背景2 class B有一个参数为callback的方法f(CallBack c ...
- Java中回调函数编写
package XXX.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStr ...
- Java接口回调机制
一.前言 最近在看android Fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下. 二.回调的含义和用途 1.什么是回调? 一般来说,模块之间都存在一定的调 ...
- java中回调函数的使用
package com.huawei.common; import java.sql.ResultSet;import java.sql.SQLException; /** * 回调函数 * @aut ...
随机推荐
- 5.QT-QString类
Qt中的字符串类 介绍 采用Unicode编码 采用隐式共享技术,节省内存和不必要的数据拷贝 隐式共享介于浅拷贝和深拷贝之间,当两个string对象赋值时,会实现浅拷贝(共享一块内存),如果某个对象 ...
- SQL优化一(SQL使用技巧)
1.行列转换: decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值); select decode(sign(变量1-变量2),-1,变量1,变量2) from dual ...
- 面试HashMap之追命5连问
1.HashMap底层实现数据结构? 总的来说,HashMap就是数组+链表的组合实现,每个数组元素存储一个链表的头结点,本质上来说是哈希表“拉链法”的实现. HashMap的链表元素对应的是一个静态 ...
- could not read Username for 'https://github.com': No error
用idea往github上push代码的时候,突然的不能用了. 报could not read Username for 'https://github.com': No error错误. 原因不明. ...
- [jQuery]相对父级元素的fixed定位
(function($) { var DNG = {}; //----------------------------------------------------/ // ...
- element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 洛谷P3209 [HNOI2010]PLANAR(2-SAT)
题目描述 若能将无向图G=(V,E)画在平面上使得任意两条无重合顶点的边不相交,则称G是平面图.判定一个图是否为平面图的问题是图论中的一个重要问题.现在假设你要判定的是一类特殊的图,图中存在一个包含所 ...
- C# 过滤特殊字符,保留中文,字母,数字,和-
#region public static string FilterChar(string inputValue) 过滤特殊字符,保留中文,字母,数字,和- /// <summary> ...
- git 入门教程之版本控制
版本控制 我们知道 git 是分布式版本控制系统,所以称被控制对象是版本本身没错,但是从git 命令中发现,并没有版本这个名词,有的只是commit,所以前几节我一直称其为提交. 为了避免后续教程引发 ...
- sh命令
sh或是执行脚本,或是切换到sh这个bash里,默认的shell是bash,你可以试试tcsh啊,csh啊,ksh,zsh什么的,看看别的shell是什么样子的.当然,linux中sh是链接到bash ...