我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么用Java实现回调例程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么用Java实现回调例程

小编给大家分享一下怎么用Java实现回调例程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

熟悉 MS-windows 和 X Window System 事件驱动编程模型的开发人员,习惯于传递在某种事件发生时调用(即“回调”)的函数指针。Java 的面向对象模型目前并不支持方法指针,这样似乎就不可能使用这种很好的机制。但我们并不是一点办法都没有!

Java 的接口支持提供了一种获得回调的等价功能的机制。其技巧就是:定义一个简单接口,并在该接口中声明我们要调用的方法。

例如,假定我们希望在某个事件发生时得到通知。我们可以定义一个接口:

public interface InterestingEvent
{
 // 这仅是一个常规方法。因此如果需要,
 // 它可有返回值,也可接收参数。
 public void interestingEvent ();
}

这使得我们可以控制实现该接口的类的任何对象。因此,我们不必关心任何外部类型信息。与在将 C++ 代码用于 Motif 时使用窗口小部件的数据域来容纳对象指针的难以控制的 C 函数相比,这种方法要好得

发出事件信号的类必须等待实现了 InterestingEvent 接口的对象,并在适当时候调用 interestingEvent() 方法。

public class EventNotifier
{
 private InterestingEvent ie;
 private boolean somethingHappened;

 public EventNotifier (InterestingEvent event)
 {
 // 保存事件对象以备后用。
 ie = event;

 // 还没有要报告的事件。
 somethingHappened = false;
 }

 //...

 public void doWork ()
 {
 // 检查在别处设置的谓词。
 if (somethingHappened)
 {
 // 通过调用接口的这个方法发出事件信号。
 ie.interestingEvent ();
 }
 //...
 }

 // ...
}

在上例中,我使用 somethingHappened 谓词来跟踪是否应触发事件。在许多情况下,调用此方法足以保证向 interestingEvent() 发出信号。

希望接收事件通知的代码必须实现 InterestingEvent 接口,并将自身引用传递给事件通知程序。

public class CallMe implements InterestingEvent
{
 private EventNotifier en;

 public CallMe ()
 {
 // 创建事件通知程序,并将自身引用传递给它。
 en = new EventNotifier (this);
 }

 // 为事件定义实际的处理程序。
 public void interestingEvent ()
 {
 // 噢!必定发生了感兴趣的事件!
 // 执行某些操作 ...
 }

 //...
}

以上是“怎么用Java实现回调例程”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么用Java实现回调例程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么用Java实现回调例程

小编给大家分享一下怎么用Java实现回调例程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!熟悉 MS-windows 和 X Window System 事件驱动
2023-06-03

Java中的回调机制怎么实现

本篇内容介绍了“Java中的回调机制怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!模块间的调用在一个应用系统中,无论使用何种语言开发
2023-06-02

Java多线程回调方法实例解析

所谓回调,就是客户程序C调用服务程序S中的某个方法A,然后S又在某个时候反过来调用C中的某个方法B,对于C来说,这个B便叫做回调方法。下面看一个实际例子来理解:本示例设置一个提问者,一个回答者,而回答者需要回答提问者一个很深奥的问题时,这时
2023-05-30

在Java中如何实现回调过程

这篇文章主要介绍了在Java中如何实现回调过程,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在Java中实现回调过程XML:namespace prefix = o ns =
2023-06-03

怎么用匿名内部类实现Java 同步回调

本篇内容主要讲解“怎么用匿名内部类实现Java 同步回调”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用匿名内部类实现Java 同步回调”吧!在一个应用系统中,不论使用何种编程语言,模块之间
2023-06-16

怎么实现JavaScript异步回调

这篇文章主要讲解了“怎么实现JavaScript异步回调”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现JavaScript异步回调”吧!什么是异步回调?异步回调是指在执行一个任务时,
2023-07-06

golang异步回调怎么实现

在Go语言中,可以使用goroutine和channel来实现异步回调的功能。首先,我们可以创建一个goroutine来执行异步的操作。在goroutine中,我们可以执行一些耗时的操作,然后将结果发送到一个channel中。下面的示例
2023-10-25

python异步回调怎么实现

在Python中,可以使用asyncio模块来实现异步回调。asyncio是Python 3.4及以上版本内置的异步IO框架。下面是一个简单的示例,演示了如何使用异步回调实现并发执行多个任务:import asyncio# 定义一个异步
python异步回调怎么实现
2024-02-29

ASP.NET异步回调怎么实现

本篇内容主要讲解“ASP.NET异步回调怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET异步回调怎么实现”吧!ASP.NET异步回调实例:首先,在Render事件中添加好一个
2023-06-17

java异步调用怎么实现

在Java中,可以通过多线程、回调接口、Future和CompletableFuture等方式来实现异步调用。1. 多线程:创建一个新的线程,在新线程中执行耗时操作,然后通过线程间的通信机制(如wait()和notify())将结果返回给主
2023-09-16

java怎么实现异步调用

在Java中,可以使用多种方法实现异步调用,下面列举了其中的两种常用方式:使用线程池:可以使用Java中的`ExecutorService`来创建线程池,然后使用`submit`方法提交一个任务给线程池执行,并使用`Future`对象获取异
2023-10-25

Java实现调用外部程序的示例代码

本文主要介绍了Java实现调用外部程序的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-18

Java中调用Python的实现示例

本文主要介绍了Java中调用Python的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-05-18

Java编程实现NBA赛事接口调用实例代码

第一步:找别人提供的接口,比如在这里我选择的是聚合数据提供的接口第二步:要申请相应的AppKey方可使用,此参数会作为接口的参数调用。第三步:调用别人提供的接口方法代码如下:package juheapi.nba;/** * Created
2023-05-30

C++中怎么实现回调函数

今天就跟大家聊聊有关C++中怎么实现回调函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C++回调函数代码示例:#include < string> #include < iost
2023-06-17

ASP.NET中怎么实现异步回调

ASP.NET中怎么实现异步回调,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ASP.NET异步回调的重要性:在实际开发中,ASP.NET 客户端异步回调技术才是王道。下面我们
2023-06-17

Java调试器怎么实现

本篇内容主要讲解“Java调试器怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java调试器怎么实现”吧!  什么是 JDB?  虽然现在有一些很好的调试工具,然而 Java 调试器 (
2023-06-03

python异步回调模式怎么实现

在Python中,可以使用多种方式实现异步回调模式,下面介绍两种常见的方法:使用回调函数:定义一个函数,将其作为参数传递给需要进行异步操作的函数,当操作完成时,调用回调函数并传递操作结果。例如:def callback(result):#
python异步回调模式怎么实现
2024-02-29

golang异步回调数据怎么实现

在Go语言中,可以使用协程(goroutine)和通道(channel)来实现异步回调数据的功能。首先,定义一个函数,该函数用于执行异步操作并将结果发送到通道中,例如:func doAsyncTask(callback chan然后,
2023-10-27

Java实现调用ElasticSearch API的示例详解

这篇文章主要为大家详细介绍了Java调用ElasticSearch API的效果资料,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的可以了解一下
2023-03-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录