博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java回调机制入门
阅读量:6408 次
发布时间:2019-06-23

本文共 2067 字,大约阅读时间需要 6 分钟。

hot3.png

今天,顺便研究了一下回调机制。关于回调,网上很多类似教程,在这里不重复,我只是为了演示回调的一个具体实现。

项目截图

223710_qAqX_2702126.png

为什么使用回调?可能很多人不太理解,我们来考虑一种情况:比如,一班情况下,我们写用户登录这个功能的时候,判断成功与否,一班都是靠返回的标记  比如1 0来辨别,然后外部方法再来处理结果。这样不免增加了时间复杂度。为了让方法本身去处理,我们特地引入了回调机制。

下面是回调接口

package interfce;import java.util.List;public interface CallBackInterface {public void onSuccess(List
list);public void onFailed(int errCode,String info);}

回调类

package listener;import java.util.ArrayList;import java.util.List;import interfce.CallBackInterface;public class Listener {	public int getErrCode() {		return errCode;	}	public void setErrCode(int errCode) {		this.errCode = errCode;	}	public String getInfo() {		return info;	}	public void setInfo(String info) {		this.info = info;	}	public CallBackInterface getCallBackInterface() {		return callBackInterface;	}	public void setCallBackInterface(CallBackInterface callBackInterface) {		this.callBackInterface = callBackInterface;	}	private int errCode;	private String info;	private List
list; private CallBackInterface callBackInterface; public Listener(CallBackInterface callBackInterface) { this.callBackInterface = callBackInterface; list = new ArrayList
(); /* * list.add("1"); list.add("2"); list.add("3"); list.add("4"); * list.add("5"); list.add("6"); */ if (list.size() == 0) { System.out.println("....."); this.getCallBackInterface().onFailed(404, "找不到页面"); this.getCallBackInterface().onSuccess(null); } else { this.getCallBackInterface().onSuccess(list); this.getCallBackInterface().onFailed(200, "成功"); } }}

最后是主函数

package main;import java.util.List;import interfce.CallBackInterface;import listener.Listener;public class Main {	public static void main(String[] args) {		System.out.println("....");		Listener listener = new Listener(new CallBackInterface() {			@Override			public void onSuccess(List
list) { } @Override public void onFailed(int errCode, String info) { System.out.println(errCode + ": ->" + info); } }); }}

我们把函数最终的结果,交给他自己去处理,而不是我们再来接受参数。

转载于:https://my.oschina.net/xiaoershaoye/blog/747402

你可能感兴趣的文章
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>
es6 class 笔记
查看>>
简单的Spark+Mysql整合开发
查看>>
阿里java面试经验大汇总(附阿里职位需求)
查看>>
Python全套零基础视频教程+软件2018最新编程视频!
查看>>
内存管理之1:x86段式内存管理与保护模式
查看>>
20180925上课截图
查看>>
IO输入/输出流的简单总结
查看>>
JavaScript之DOM-9 HTML DOM(HTML DOM概述、常用HTML DOM对象、HTML表单)
查看>>
技术成长之路(一)
查看>>
中国北方国际五金城硬件选型
查看>>
php.exe启动时提示缺少MVCR110.dall 64位 window系统 解决
查看>>
判断是否为数字方法
查看>>
[翻译] EF Core in Action 关于这本书
查看>>
js Uncaught TypeError: undefined is not a function
查看>>
数据库存储引擎
查看>>
[2019.2.13]BZOJ4318 OSU!
查看>>
版本号带两个小数点的,如何比较大小?( NSStringCompareOptions )
查看>>
QCustomplot使用分享(三) 图
查看>>