java回忆录——接口回调机制(1)

2024-05-26 21:38

本文主要是介绍java回忆录——接口回调机制(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

回忆一些丢了的东西,蛮有心得的


在java中回调机制是用得很多的,比如Runnable 中的run方法 ,在Android里面也大量用到了这种机制,其实也不是很难,在生活中我们也遇到这个 最明显的就是打电话。

什么是回调,网上有很多通俗的解释:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调 ,其实就是:我打你脑袋(A类中调用B类中的某个方法C),你抽我大嘴巴子(B类中反过来调用A类中的方法D)这个大嘴巴子就是回调咯,这形象了吧 ^_^

好上代码吧

首先有一个回调的CallBack 接口  自然就有实现类 A

package org.blueskytoolkit.source.callback;/*** 回调接口* @author zw* 2016年5月30日下午3:16:10*/
public interface CallBack {public void message(String meg);
}

实现类A

package org.blueskytoolkit.source.callback;/*** 实现回调* @author zw* 2016年5月30日下午3:19:10*/
public class A implements CallBack {/*** 回调的结果* 也就是大嘴巴子*/@Overridepublic void message(String meg) {System.err.println(meg);}private B b;   public A(B b){  this.b = b;  }  /*** A 中的方法* @param question*/public void askQuestion(final String question){  System.err.println(question); //这里用一个线程就是异步,  new Thread(new Runnable() {  @Override  public void run() {  //调用b中“脑袋”b.executeMessage(A.this, question);   }  }).start();  other();  }  /*** 你懵逼了一会 */public void other(){  System.err.println("执行其他事物---等待B反馈结果");  }  }

package org.blueskytoolkit.source.callback;public class B {/*** * @param callBack 其实可以理解为 A 对象* @param question A对象传过来的信息*/public void executeMessage(CallBack callBack, String question){  System.err.println("B接收到: "+question);  /*** 模拟耗时操作*/for(int i=0; i<10000;i++){  }  String result = "我是B-- 接收到反馈意见,并已采纳,非常感谢";  /*** 把耗时结果返回回调接口* 我打你大嘴巴子*/callBack.message(result);   }  
}

好了代码基本就是以上这些

测试代码

package org.blueskytoolkit.source.callback;public class Test {public static void main(String[] args) {B b = new B();  A a = new A(b);  /*** 异步调用b中的方法*/a.askQuestion("我是A -- 我在给B反馈意见");}
}


嗯~~现在应该懂了吧,刚开始学的时候也是蒙了  什么鬼回调接口,其实用生活中的一些现象解释就很容易懂了

希望能帮助到你们


这篇关于java回忆录——接口回调机制(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1005665

相关文章

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

如何在Java Spring实现异步执行(详细篇)

《如何在JavaSpring实现异步执行(详细篇)》Spring框架通过@Async、Executor等实现异步执行,提升系统性能与响应速度,支持自定义线程池管理并发,本文给大家介绍如何在Sprin... 目录前言1. 使用 @Async 实现异步执行1.1 启用异步执行支持1.2 创建异步方法1.3 调用

java内存泄漏排查过程及解决

《java内存泄漏排查过程及解决》公司某服务内存持续增长,疑似内存泄漏,未触发OOM,排查方法包括检查JVM配置、分析GC执行状态、导出堆内存快照并用IDEAProfiler工具定位大对象及代码... 目录内存泄漏内存问题排查1.查看JVM内存配置2.分析gc是否正常执行3.导出 dump 各种工具分析4.

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Spring Boot 3.x 中 WebClient 示例详解析

《SpringBoot3.x中WebClient示例详解析》SpringBoot3.x中WebClient是响应式HTTP客户端,替代RestTemplate,支持异步非阻塞请求,涵盖GET... 目录Spring Boot 3.x 中 WebClient 全面详解及示例1. WebClient 简介2.

Java中使用 @Builder 注解的简单示例

《Java中使用@Builder注解的简单示例》@Builder简化构建但存在复杂性,需配合其他注解,导致可变性、抽象类型处理难题,链式编程非最佳实践,适合长期对象,避免与@Data混用,改用@G... 目录一、案例二、不足之处大多数同学使用 @Builder 无非就是为了链式编程,然而 @Builder

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶