Java回调机制入门

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

项目截图

223710_qAqX_2702126.png

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

下面是回调接口

package interfce;

import java.util.List;

public interface CallBackInterface {
public void onSuccess(List<String>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<String> list;
	private CallBackInterface callBackInterface;

	public Listener(CallBackInterface callBackInterface) {
		this.callBackInterface = callBackInterface;
		list = new ArrayList<String>();
		/*
		 * 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<String> list) {

			}

			@Override
			public void onFailed(int errCode, String info) {
				System.out.println(errCode + ":    ->" + info);

			}
		});

	}

}

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值