iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中的闭包与回调方法分析
  • 873
分享到

Java中的闭包与回调方法分析

2023-06-17 13:06:30 873人浏览 泡泡鱼
摘要

本篇内容介绍了“Java中的闭包与回调方法分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!闭包是一个可调用的对象,它记录了一些信息,这些信

本篇内容介绍了“Java中的闭包与回调方法分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

闭包是一个可调用的对象,它记录了一些信息,这些信息来自于创建他的作用域,用过这个定义 可以看出内部类是面向对象的闭包 因为他不仅包含外围类对象的信息 还自动拥有一个指向此外围类对象的引用 在此作用域内 内部类有权操作所有的成员 包括private成员;

Java代码

interface Incrementable  {  void increment();  }  class Callee1 implements Incrementable  {  private int i=0;  public void increment()  {  i++;  System.out.println(i);  }  }  class MyIncrement  {  void increment()  {  System.out.println("other increment");  }  static void f(MyIncrement mi)  {  mi.increment();  }  }  class Callee2 extends MyIncrement  {  private int i=0;  private void incr()  {  i++;  System.out.println(i);  }  private class Closure implements Incrementable //内部类  {  public void increment()  {  incr();  }  }  Incrementable getCallbackReference()  {  return new Closure(); //新建内部类  }  }  class Caller  {  private Incrementable callbackRefference;  Caller(Incrementable cbh)  {  callbackRefference = cbh;  }  void Go()  {  callbackRefference.increment();//调用increment()方法  }  }  public class Callbacks  {  public static void main(String [] args)  {  Callee1 c1=new Callee1();  Callee2 c2=new Callee2();  MyIncrement.f(c2);  Caller caller1 =new Caller(c1);  Caller caller2=new Caller(c2.getCallbackReference());//将内部类中的Closure赋给Caller  caller1.go();  caller1.go();  caller2.go();  caller2.go();  }  }

输出:

other increment

1

2

1

2

Callee2 继承字MyIncrement 后者已经有一个不同的increment()方法并且与Incrementable接口期望的increment()方法完全不相关 所以如果Callee2继承了MyIncrement 就不能为了Incrementable的用途而覆盖increment()方法 于是这能使用内部类独立的实现Incrementable

内部类Closure实现了Incrementable 一提供一个放回Caller2的钩子 而且是一个安全的钩子 无论谁获得此Incrementbale的引用 都只能调用increment() 除此之外没有其他功能。

“Java中的闭包与回调方法分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java中的闭包与回调方法分析

本文链接: https://www.lsjlt.com/news/289108.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Java中的闭包与回调方法分析
    本篇内容介绍了“Java中的闭包与回调方法分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!闭包是一个可调用的对象,它记录了一些信息,这些信...
    99+
    2023-06-17
  • Javascript中return与闭包的示例分析
    这篇文章给大家分享的是有关Javascript中return与闭包的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、return的使用案例一:var a=1;...
    99+
    2024-04-02
  • JS中闭包与定时器的示例分析
    这篇文章主要介绍了JS中闭包与定时器的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是闭包 有什么作用闭包就是能够读取其他函数内...
    99+
    2024-04-02
  • Javascript闭包的作用与使用方法浅析
    目录一、变量的作用域二、如何从外部读取局部变量js 闭包(closure)是Javascript语言的一个难点,也是它的特色。 闭包的作用:通过一系方法,将函数内部的变量(局部变量)...
    99+
    2023-01-18
    JavaScript闭包 JS闭包
  • JS之闭包的用法分析
    这篇文章将为大家详细讲解有关JS之闭包的用法分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。直接上代码<!DOCTYPE html> <ht...
    99+
    2024-04-02
  • setTimeout与循环闭包的示例分析
    这期内容当中小编将会给大家带来有关setTimeout与循环闭包的示例分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。我在详细图解作用域链与闭包一文中的结尾留下了一个关...
    99+
    2024-04-02
  • js中闭包的示例分析
    这篇文章主要介绍了js中闭包的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、说明闭包是具有很多变量和这些变量的环境的表现式(通常是函数),这些变量也是该表现式的一...
    99+
    2023-06-14
  • Java多线程回调方法实例解析
    所谓回调,就是客户程序C调用服务程序S中的某个方法A,然后S又在某个时候反过来调用C中的某个方法B,对于C来说,这个B便叫做回调方法。下面看一个实际例子来理解:本示例设置一个提问者,一个回答者,而回答者需要回答提问者一个很深奥的问题时,这时...
    99+
    2023-05-30
    java 多线程 回调
  • react中useEffect闭包的示例分析
    这篇文章主要介绍react中useEffect闭包的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!问题代码看一段因为useEffect导致的闭包问题代码const btn = u...
    99+
    2023-06-15
  • java编程中实现调用js方法分析
    本文实例讲述了java编程中实现调用js方法。分享给大家供大家参考,具体如下:public void test2(){ ScriptEngineManager manager = new ScriptEngineManager();...
    99+
    2023-05-31
    java js方法 ava
  • JavaScript解析机制与闭包原理的示例分析
    小编给大家分享一下JavaScript解析机制与闭包原理的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体如下:js解...
    99+
    2024-04-02
  • Java中的SimpleDateFormat方法分析
    Java中的SimpleDateFormat方法分析 先进行专栏介绍SimpleDateFormat方法分析 常用方法构造方法格式化(从Date到String)举例分析 解析(从String到Date)举例分析 ...
    99+
    2023-08-16
    java 开发语言
  • 基于Java接口回调的示例分析
    基于Java接口回调的示例分析,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java接口回调产生接口回调的场景在现实生活中,产生接口回调的场景很简单,比如我主动叫你帮我做一件事...
    99+
    2023-06-22
  • Nodejs中callback回调的示例分析
    小编给大家分享一下Nodejs中callback回调的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!什么是callback  很显然,字面意思就...
    99+
    2023-06-15
  • Go语言中的闭包实例分析
    这篇文章主要介绍“Go语言中的闭包实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Go语言中的闭包实例分析”文章能帮助大家解决问题。一、函数的变量作用域和可见性全局变量在main函数执行之前初...
    99+
    2023-07-02
  • Java线程中start方法如何回调run方法
    小编给大家分享一下Java线程中start方法如何回调run方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java 创建线程的方法实际上,创建线程最重要的是提...
    99+
    2023-05-30
    java start run
  • Java中方法的示例分析
    这篇文章给大家分享的是有关Java中方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。什么是方法例如:System.out.println();其结构为-->类.对象.方法;其含义为-->调...
    99+
    2023-06-20
  • jquery中回调操作的示例分析
    这篇文章将为大家详细讲解有关jquery中回调操作的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:jquery 回调成功的情况node2:/django...
    99+
    2024-04-02
  • golang 函数调试与分析工具的陷阱与回避
    Go 函数调试与分析工具的陷阱与规避 在 Go 应用程序中进行调试和分析时,有许多有用的工具可供使用,例如:pprof、gotrace和go tool trace。然而,这些工具的使用...
    99+
    2024-05-06
    调试 golang
  • java中jvm关闭的示例分析
    这篇文章给大家分享的是有关java中jvm关闭的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作