`
taote
  • 浏览: 33946 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java -之- 回调函数

阅读更多
回调函数有这样一种定义:
1.回调就是该函数写在高层,低层通过一个函数指针来保存这个函数,在某个事件触发下,低层通过该函数指针调用高层那个函数(c语言);
2.在java中,通常是编写另外一个类或者类库的人规定一个接口,然后你来实现这个接口,然后把这个接口作为参数传递给别人的程序,别人的程序必要时就会通过那个接口来调用你编写的函数。
public interface CallBack {
	public void execute();

}

这是别人定义的一个接口,下面是你对接口的实现:
public class TestObject {
	/**
	 * 一个用来被测试的方法,进行了一个比较耗时的循环
	 */
	public static void testMethod() {
		for (int i = 0; i < 100000000; i++) {

		}
		System.out.println("回调中···");
	}
}

然后是一个工具类的实现:
public class Tools {

	/**
	 * 测试函数使用时间,通过定义CallBack接口的execute方法
	 * 
	 * @param callBack
	 */
	public void testTime(CallBack callBack) {
		System.out.println("回调前···");
		long begin = System.currentTimeMillis();// 测试起始时间
		callBack.execute();// /进行回调操作
		long end = System.currentTimeMillis();// 测试结束时间
		System.out.println("[use time]:" + (end - begin));// 打印使用时间
		System.out.println("回调后···");
	}

	public static void main(String[] args) {
		Tools tool = new Tools();
		tool.testTime(new CallBack() {
			// 定义execute方法
			public void execute() {
				// 这里可以加放一个或多个要测试运行时间的方法
				TestObject.testMethod();
			}
		});
	}

}

在tools中,接口的对象callBack作为参数传递给了testTime()方法,通过接口的回调,调用了之前编写的testMethod()方法。
输出:
回调前···
回调中···
[use time]:94
回调后···


回调函数还有个特征:不是我来调用你,而是你来调用我。
这里的我就是“testTime”,你就是"execute"。
2
1
分享到:
评论

相关推荐

    java 回调函数 实现

    在Java编程中,回调函数是一种设计模式,它允许一个对象在另一个对象执行特定操作后接收通知或进行处理。这种机制通常用于事件驱动编程或者异步编程中,使得代码能够响应某些特定事件的发生。在给定的场景中,我们...

    Java面试如何用Java实现一个回调函数

    Java面试如何用Java实现一个回调函数

    java回调函数

    Java回调函数是编程中一种非常重要的设计模式,它允许一个对象在另一个对象完成特定操作后进行通知或执行相应的处理。这种机制使得代码更加灵活,解耦了调用者和被调用者的依赖关系,通常用于事件处理、异步编程、...

    [iOS]Objective-C利用协议实现回调函数(类似java的回调函数)

    在标题提及的“[iOS]Objective-C利用协议实现回调函数(类似java的回调函数)”中,我们主要讨论的是Objective-C如何通过协议(Protocol)来实现类似于Java中的回调函数功能。这种机制对于异步编程、事件处理以及...

    java自定义回调函数

    Java自定义回调函数是软件开发中的一个重要概念,尤其是在Android和SDK开发中,它极大地提高了代码的灵活性和可扩展性。回调函数允许一个方法在完成特定操作后通知另一个方法,这种设计模式在异步编程和事件处理中...

    Java-Java函数式编程教程

    Lambda表达式可以简化回调函数的实现,使代码更易读。 2. **函数式接口**: 为了使用Lambda表达式,必须有一个合适的函数式接口。函数式接口是指只有一个抽象方法的接口,如Runnable、Callable和Comparator。Java ...

    java中回调函数的简单实现

    在Java编程中,回调函数是一种设计模式,它允许我们在代码执行过程中插入自定义的行为,特别是在异步编程或者事件处理中非常常见。回调函数的核心思想是将一个函数作为参数传递给另一个函数,然后在适当的时候由被...

    java-property-utils-1.9.1.zip

    6. **事件监听**:提供属性变更的监听机制,可以在属性改变时执行相应的回调函数。 7. **属性验证**:可以对属性值进行预定义的检查,确保它们符合预期的格式或范围。 与 CORS(跨域资源共享)相关的配置 CORS 是...

    ssh框架整合分页--内部类回调函数

    SSH框架整合分页——内部类回调函数 SSH(Spring、Struts2、Hibernate)是Java Web开发中常用的一种集成框架,它将Spring的IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面...

    回调函数被连续执行两次或多次的原因

    ### 回调函数被连续执行两次或多次的原因 在编程领域,回调函数是一种常见的编程模式,它允许将函数作为参数传递给另一个函数,并在适当的时机由后者调用。这种模式非常有用,尤其是在处理异步操作时。然而,在某些...

    Java多线程实现回调函数.txt

    Java多线程实现 自定义 的 回调函数. 手写 完成,亲测 完成,可以 直接运行,Demo ,具有一定参考价值,供大家阅读 下载,谢谢

    rabbitmq-java-client-bin-3.3.4.zip

    - **BasicConsume**:消费者用于开始消费消息的API,通常伴随着一个回调函数处理接收到的消息。 - **MessageProperties**:定义消息的属性,如内容类型、优先级等。 使用RabbitMQ Java客户端时,开发人员需要考虑...

    Android回调函数的例子

    本示例将深入探讨Java回调函数,并通过一个Android小程序来展示其用法。 首先,理解Java回调函数的基础概念。回调函数本质上是将一个函数作为参数传递给另一个函数,待特定条件满足或特定事件发生时,被调用的函数...

    JNA 回调函数不稳定现象处理 文件

    JNA 回调函数工作不稳定现象处理 (绝大多数回调不稳定的原因)

    yop-java-sdk-2.1.4.zip

    4. **交易流程**:一个典型的支付流程包括发起支付请求、用户确认支付、服务器端接收支付结果通知、以及处理回调。SDK会提供相应的接口协助开发者完成这些步骤。 接下来,我们分析压缩包内的内容: - **附件.txt**...

    亲测可用,java 成功调用dll函数。包含调用回调函数,springboot版本。最近由于公司业务需要,要调用dll文件,用JNA调用。

    在Java通过JNA调用DLL时,如果DLL函数需要一个回调函数作为参数,那么Java需要定义一个接口,该接口的方法将作为回调函数的实现,JNA会处理这个接口的调用转换。 4. **Spring Boot**:Spring Boot是基于Spring框架...

    Java回调函数的理解

    ### Java回调函数的理解 #### 一、回调函数的概念与应用场景 在计算机编程中,回调是一种常用的编程模式,尤其是在异步编程场景中。简单来说,回调指的是一个函数或方法被另一个函数调用,作为参数传递进去。这种...

    android回调函数

    在Android开发中,回调函数是一种常见的编程模式,用于在特定事件发生时通知并允许其他对象进行相应的处理。回调函数在Android中的应用广泛,比如在异步任务完成、用户界面更新或者网络请求完成时,都会用到回调。...

    java中的回调函数.docx

    Java中的回调函数是一种设计模式,它允许一个对象在特定事件发生时调用另一个对象的方法。在Java中,回调机制通常通过接口实现,因为Java不支持像C++那样的指针。以下是对回调函数及其在Java中如何工作的详细说明: ...

    java-openjdk1.8-linux.tar.gz

    2. **方法引用来替代匿名内部类**:在处理事件监听器或其他需要回调的地方,可以使用方法引用来代替匿名内部类,使得代码更加简洁。 3. **默认方法**:接口中可以定义带有实现的方法,这允许在不破坏向后兼容性的...

Global site tag (gtag.js) - Google Analytics