知识大全 Java中的闭包与回调

Posted

篇首语:大鹏一日同风起,扶摇直上九万里。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java中的闭包与回调相关的知识,希望对你有一定的参考价值。

Java中的闭包与回调  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

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

  Java代码

  interface Incrementable

  

  void increment();

  

  class Callee implements Incrementable

  

  private int i= ;

  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 Callee extends MyIncrement

  

  private int i= ;

  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)

  

  Callee c =new Callee ();

  Callee c =new Callee ();

  MyIncrement f(c );

  Caller caller =new  Caller(c );

  Caller caller =new Caller(c getCallbackReference());//将内部类中的Closure赋给Caller

  caller go();

  caller go();

  caller go();

  caller go();

  

  

  输出

  other increment

  

  

  

  

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

cha138/Article/program/Java/hx/201311/25624

相关参考

知识大全 Java的回调函数

Java的回调函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!   

知识大全 在Java中实现回调过程

在Java中实现回调过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    摘要:  Java接

知识大全 用 Java 实现回调例程

Java技巧:用Java实现回调例程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  熟悉MSWi

知识大全 java回调

  一个类Callable不自己去调用自己的方法让其他类调用她(Callable)自身的方法(通过给其他类提供她自己的引用)  代码(一般javaGUI开发中添加按钮的点击事件)[java]viewp

知识大全 Java中限时线程回调方式的实现

Java中限时线程回调方式的实现  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  线程回调方式我们

知识大全 Java使用回调和线程处理耗时响应过程[2]

Java使用回调和线程处理耗时响应过程[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 Java使用回调和线程处理耗时响应过程[1]

Java使用回调和线程处理耗时响应过程[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs

知识大全 ASP.NET 中的自定义脚本回调

ASP.NET中的自定义脚本回调  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET客户

知识大全 java问题,请大神指教

java问题,请大神指教?!因为这个new什么的是闭包隐式声明的方法、在里面调用外部变量的时候、外部的变量需要final修饰、但是这个该死的i是变化的、故而不能使用final、于是矛盾产生、故而使用中

知识大全 Java Listener模式

JavaListener模式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  每种语言都有自己回调