知识大全 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的回调函数 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
在Java中实现回调过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 摘要: Java接
Java技巧:用Java实现回调例程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 熟悉MSWi
一个类Callable不自己去调用自己的方法让其他类调用她(Callable)自身的方法(通过给其他类提供她自己的引用) 代码(一般javaGUI开发中添加按钮的点击事件)[java]viewp
Java中限时线程回调方式的实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 线程回调方式我们
Java使用回调和线程处理耗时响应过程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
Java使用回调和线程处理耗时响应过程[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nbs
ASP.NET中的自定义脚本回调 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET客户
java问题,请大神指教?!因为这个new什么的是闭包隐式声明的方法、在里面调用外部变量的时候、外部的变量需要final修饰、但是这个该死的i是变化的、故而不能使用final、于是矛盾产生、故而使用中
JavaListener模式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 每种语言都有自己回调