接口回调示例

来源:互联网 发布:算法第四版王晓东pdf 编辑:程序博客网 时间:2024/05/22 05:22
public class Test_Main01 implements CallBack{private static String msg;//记录子线程的话public static void main(String[] args) {// TODO Auto-generated method stub//第一种:外部类实现接口//CallBack cb=new MyCallBack(msg);//第二种:静态内部类实现接口//CallBack cb=new MyCallBack1();//第三种:当前类实现接口//CallBack cb=new Test_Main01();//第四种:匿名内部类实现接口CallBack cb=new CallBack() {@Overridepublic void sendMsg(String str) {// TODO Auto-generated method stubmsg=str;System.out.println("匿名内部类实现接口:"+msg);}};//创建线程并启动MyThread thread=new MyThread(cb);thread.start();for(int i=1;i<11;i++){System.out.println("主线程:"+i);}}//使用静态内部类实现接口private static class MyCallBack1 implements CallBack{@Overridepublic void sendMsg(String str) {// TODO Auto-generated method stubmsg=str;System.out.println("回调:"+msg);}}@Overridepublic void sendMsg(String str) {// TODO Auto-generated method stubmsg=str;System.out.println("当前类实现接口:"+msg);}}



public class MyThread extends Thread{private CallBack cb;public MyThread(CallBack cb) {// TODO Auto-generated constructor stubthis.cb=cb;}@Overridepublic void run() {for(char i='A';i<='Z';i++){System.out.println("子线程:"+i);}cb.sendMsg("子线程完毕");}}


/** * 线程类实现网络数据下载并将下载内容通过接口回调的形式回调到调用的地方*/public class HttpThread extends Thread{public interface CallBack{void sendJSONStr(String str);}private CallBack callback;public HttpThread(CallBack cb) {// TODO Auto-generated constructor stubcallback=cb;}@Overridepublic void run() {//OkHttp实现网络数据请求,结果为字符串//代码……callback.sendJSONStr("[11,22,33,44,55]");}}


public class MyCallBack implements CallBack{private String msg;public MyCallBack(String m) {// TODO Auto-generated constructor stubmsg=m;}@Overridepublic void sendMsg(String str) {// TODO Auto-generated method stubmsg=str;System.out.println(msg);}}

//定义接口public interface CallBack {//创建抽象方法void sendMsg(String str);}


0 0
原创粉丝点击