`
huangyongxing310
  • 浏览: 490463 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java中实现CallBack功能

    博客分类:
  • Java
阅读更多
Java中实现CallBack功能


1.CallBack的作用就是当运行完一个方法后,可以运行另一个指定的方法(这是前面一个方法参数实例中的一个方法)。
2.CallBack就是当我调用一个接口时(接口有回调函数的接口类型并传入一个继承这个接口的实例)。
3.调用这一个接口完成后就调用参数中转入的回调实例里的指定方法。


例子:
package TestCallBack;
public class Main {
	public static void main(String[] args) {
		new TestCallBack().compute(1000, new ComputeCallBack() {   //这是一个实现了回调接口(ComputeCallBack)的匿名类对象
			@Override
			public void onComputeEnd() {
				System.out.println("end back!!!");

			}
		});
	}
}



package TestCallBack;
public class TestCallBack {		//业务处理类
    public void compute(int n, ComputeCallBack callback) {
        for (int i = 0; i < n; i++) {
            System.out.println(i);
        }
        callback.onComputeEnd();	//执行回调函数
    }
}



package TestCallBack;
public interface ComputeCallBack {	//回调接口
	public void onComputeEnd();
}



运行上面的代码,就会在输出结束的时候调用在Main里面的callback函数,输出System.out.println("end back!!!");

原理分析:
1.在主类中,新建业务类的时候,传递进去的第二个参数是一个实现了回调接口的匿名类对象(就是一个继承ComputeCallBack接口的实例,重写了里面的方法)。
2.在业务类中,我们调用了这个对象的onComputeEnd方法。在执行onComputeEnd的时候,jvm会找到这个对象的函数实现(主类中的onComputeEnd)并调用。于是就输出了end back!!!


参考原文:http://blog.csdn.net/imzoer/article/details/9422013
分享到:
评论

相关推荐

    Callback_Androidjni_AndoidJNI层到Java层的调用_android_android回调_

    本示例着重探讨如何从Android JNI层回调到Java层,这对于实现性能优化、利用现有C/C++库或处理特定硬件功能时非常有用。 首先,我们来理解JNI的基本概念。JNI是Java平台的一部分,它提供了一个框架,让Java代码能够...

    JAVA_API1.6文档(中文)

    java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 Adleman AsymmetricCipher 算法)密钥,以及 NIST 的 FIPS-186 中定义的 DSA(数字签名算法)...

    Android APP 用interface 接口的形式对jni进行回调,实例测试

    本实例测试主要探讨如何通过Java接口(interface)在Android App中实现对JNI层的回调,以提高应用程序的灵活性和功能性。 首先,我们需要理解Java接口在JNI中的作用。在Android中,Java接口可以作为参数传递给JNI...

    RMI CallBack

    "RMI CallBack"是指在RMI的基础上实现回调功能,使得服务器端可以主动调用客户端的方法,而不仅仅是客户端调用服务器端。 在RMI Callback的实现中,通常包含以下几个关键组件: 1. **服务接口**...

    JNI 回调函数 Callback

    综上所述,JNI回调函数Callback是Android开发中连接Java和C/C++的重要方式,它使得两个世界之间的通信更为灵活,能够实现更多复杂的逻辑。在实际应用中,开发者需要熟练掌握JNI的基础知识,并了解如何安全有效地使用...

    hello-jniCallback_jni_android_

    在Android开发中,JNI(Java Native Interface)是一个关键的概念,它允许Java代码和其他语言写的...通过这个示例,开发者可以深入理解原生代码在Android生态中的角色,以及如何利用它来提升应用性能或实现特定功能。

    Java中回调方法使用范例

    这种模式在Java中通常通过接口来实现,因为接口可以定义一个或多个抽象方法,而这些方法的实现由用户自定义。 标题“Java中回调方法使用范例”暗示我们将探讨如何在实际的Java程序中运用回调方法。下面是一个详细的...

    Rmi callback

    总的来说,"Rmi callback"实例展示了如何在Java的RMI环境中实现双向通信,增强了服务器与客户端之间的交互能力。理解这个实例有助于开发者深入理解RMI的工作原理和回调机制,对于开发分布式系统具有重要的实践意义。

    CallBack_DEMO 回调

    在本示例"CallBack_DEMO"中,我们可能正在探讨如何在Java或其他编程语言中实现回调机制。回调通常与异步编程相关,尤其是在处理I/O操作、网络请求或者时间事件时,它能让程序在执行完成后继续执行后续操作,而不是...

    java实现ocp客户端

    通过这个库,开发者可以在 Java 应用程序中轻松地与 OPC 服务器进行数据交互,实现工业自动化系统的远程监控和控制。在实际项目中,可能还需要考虑错误处理、线程安全以及性能优化等问题,以确保代码的健壮性和效率...

    JniCallback.zip_Android jni_android_jni android_jni callback_jni

    JNI在很多场景下都非常有用,比如优化性能、使用现有的C/C++库、或者像在这个“JniCallback.zip”文件中所展示的,实现应用层与本地代码之间的回调功能。下面我们将深入探讨这个主题。 1. **JNI基础知识**: JNI是...

    在java中\"模拟\" XMLHttpRequest

    总之,`AjaxHttpRequest`类在Java环境中提供了与JavaScript中的XMLHttpRequest相似的功能,实现了服务器端的异步数据通信,这对于构建动态Web应用程序至关重要。理解并掌握这个类的实现细节,将有助于提升你在Java ...

    Android JNI多线程编程回调JAVA函数

    总之,Android中的JNI多线程编程和回调Java函数是一项重要的技能,它能有效利用多核处理器的性能,提高程序效率,并实现复杂的功能。理解并熟练运用这些技术,将有助于提升Android应用的性能和质量。

    Java 1.6 API 中文 New

    java.security.interfaces 提供的接口用于生成 RSA Laboratory Technical Note PKCS#1 中定义的 RSA(Rivest、Shamir 和 Adleman AsymmetricCipher 算法)密钥,以及 NIST 的 FIPS-186 中定义的 DSA(数字签名算法)...

    Android NDK开发——C回调Java中的方法

    NDK允许开发者在Android应用中混用Java和原生代码,通过JNI(Java Native Interface)来实现两者之间的交互。本篇文章将详细介绍如何在Android NDK开发中实现C回调Java中的方法。 首先,了解NDK和JNI的基础概念是...

    callback机制

    这种机制允许程序设计者将某些功能的实现细节留给使用者去完成,即使用者可以通过提供回调函数的方式参与到程序的行为控制中。 #### 二、回调函数的实现原理 在不同的编程语言中,回调函数的实现方式可能会有所...

    java 监听windows系统热键组合

    在Java编程环境中,有时我们需要实现一个功能,即监听Windows系统的热键组合,以便在用户按下特定的键盘快捷键时执行相应的操作。这个功能在开发桌面应用程序时非常有用,特别是使用Swing作为UI框架的时候。标题提到...

    java 中OkHttp的使用方法及实例

    在Java开发中,OkHttp是一个高效且功能强大的网络请求库,由Square公司开发。它提供了简单易用的API,能够处理HTTP请求,并且在性能上有显著的优势,包括连接池、缓存策略以及异步请求的支持。本文将详细介绍如何在...

    Java中的回调使用

    在Java中,回调并不是语言内置的特性,但可以通过接口、匿名内部类或Java 8引入的Lambda表达式来实现。 首先,我们来看如何使用接口实现回调。假设有一个`Calculator`接口,它定义了一个`calculateDone`方法: ```...

Global site tag (gtag.js) - Google Analytics