JAVA-回调实现小例子

回调就是就调用方在调用被调用方时留给对方一个小尾巴,在被调方需要的时候通过这个小尾巴把消息通知给调用方

实现例子如下,一如既往设计一个顶层接口
/**

  • 回调的顶层接口定义
  • @author [email protected]
  • */
    public interface CallBack {

    public void callback(Object object);

}

调用对象
package callback;

/**

  • 业务调用方A
  • @author [email protected]
  • */
    public class BusARequest implements CallBack {

    public void execute() {
    //调用被调方
    BusResponse rep = new BusResponse();
    //将自己同时传给被调用方
    rep.call(this, 1);
    }

    @Override
    //实现的回调方法
    public void callback(Object object) {
    getResult((int)object);
    }

    public int getResult(int para) {

    System.out.println("参数:"+para);
    return para;

    }

}

被调用对象进行回调

package callback;

/**

  • 被调用的对象进行回调
  • @author [email protected]
  • */
    public class BusResponse {

    public void call(CallBack callback,Object object) {

    System.out.println("进入操作");
    
    System.out.println("回调对象类型:"+callback.getClass().getSimpleName());
    
    callback.callback(object);

    }

}

测试示例
package callback;

public class CallBackMain {

public static void main(String[] args) {

    BusARequest objectA = new BusARequest();

    BusBRequest objectB = new BusBRequest();

    BusCRequest objectC = new BusCRequest();

    objectA.execute();

    objectB.execute();

    objectC.execute();
}

}

调用结果

原文地址:https://blog.51cto.com/4890631/2487468

时间: 04-15

JAVA-回调实现小例子的相关文章

java即时通信小例子

学习java一段时间了,今天写来一个即时通信的小例子练手在其过程中也学到了一些知识拿出来和大家分享,请路过的各位大神多多赐教... 好了下面讲一下基本的思路: 首先,编写服务器端的程序,简单点说吧就是在服务上开启一个线程循环等待客户端的连接,为每一个连接到服务器的Socket 创建一个实例存放在集合中,然后使用InputSteam读取从客户端发过来的数据然后转发给除自己之外的所有的客户端 然后是客户端,首先开启一个线程连接都服务器端,循环监听服务器发送回来的数据 这里要说一下为了明确是谁发出的消

Java处理文件小例子--获取全国所有城市的坐标

需求:前端展示数据,全国城市的坐标 这个是 echarts 的 制作地图JSON 工具, 但是没有全国的,只有各个省 前端需要的数据:    所以现在 下载所有的省数据: 然后是Java处理. 这是这里重点, 在开发中, 很多繁琐的事 ,我们都可以用程序来控制: package cn.ycmedia.common.utils; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; i

Java代理的小例子

利用代理可以在运行时创建一个实现了一组给定接口的新类. 需要一个调用处理器(invocation handler),调用处理器需实现InvocationHandler接口.无论何时调用代理对象的方法,调用处理器的invoke方法都会被调用,并向其传递Method对象和原始的调用参数. 创建代理对象,需要使用Proxy类的newProxyInstance方法.此方法有三个参数: 1.一个类加载器(class loader),null代表默认 2.接口数组 3.一个调用处理器 使用代理的作用: 1.

java中tcp小例子

服务端: ServerSocket service = new ServerSocket(7777); Socket socket = service.accept(); InputStream input = socket.getInputStream(); OutputStream out = socket.getOutputStream(); BufferedInputStream bufinput = new BufferedInputStream(input); BufferedOut

java回调函数的例子

1. 定义一个回调接口 public interface CallBack { //执行回调操作的方法 void execute(); } 2. 定义一个类的方法,使上面定义的回调接口接口作为它的参数 . public class Test { /** * 测试函数,通过定义CallBack接口的execute方法 * @param callBack */ public void test(CallBack callBack) { System.out.println("回调前..."

Java加密程序小例子

1:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的. 加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换. package cn.zzsxt.lianxi;import java.util.Scanner;public class Practice { public static void main(String[] args) { System.out.println("请输入一个四位数字:"); Sca

转:一个经典例子让你彻彻底底理解java回调机制

一个经典例子让你彻彻底底理解java回调机制 以前不理解什么叫回调,天天听人家说加一个回调方法啥的,心里想我草,什么叫回调方法啊?然后自己就在网上找啊找啊找,找了很多也不是很明白,现在知道了,所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的,其实我刚开始也是这样不理解,看了人家说比较经典的回调方式: Class A实现接口CallBack callback——背景1class A中包含一个class B的引用b —

java操作xml的一个小例子

最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要定义好bean的层次结构就可以了,第三方包会自动生成和解析xml. 但是今天发现,这个包有两个问题: 一个是比较复杂(我是菜鸟,求别喷,我真的觉得他挺复杂的..).比如说你要想处理既有属性又有值的xml就比较麻烦.(@XStreamConverter注解这种方法报这个错:com.thoughtwor

java连接mysql的一个小例子

想要用java 连接数据库,需要在classpath中加上jdbc的jar包路径 在eclipse中,Project的properties里面的java build path里面添加引用 连接成功的一个小例子数据库如下如 代码 package query; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; impor

Hadoop中RPC协议小例子报错java.lang.reflect.UndeclaredThrowableException解决方法

最近在学习传智播客吴超老师的Hadoop视频,里面他在讲解RPC通信原理的过程中给了一个RPC的小例子,但是自己编写的过程中遇到一个小错误,整理如下: log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).log4j:WARN Please initialize the log4j system properly.log4j:WARN See