Thinking in Java(9)-closures and callbacks
来源:互联网 发布:布里斯班 知乎 编辑:程序博客网 时间:2024/05/16 05:06
对closures and callbacks不是很理解,先记下来慢慢理解QAQ:
package interfaces.classprocessor;interface Incrementable{ void increment();}class Callee1 implements Incrementable { private int i = 0; public void increment() { i++; System.out.println(i); }}class MyIncrement { public void increment() { System.out.println("Other operation"); } static void f(MyIncrement mi){ mi.increment(); }}class Callee2 extends MyIncrement { private int i = 0; public void increment() { super.increment(); i++; System.out.println(i); }private class Closure implements Incrementable { public void increment() { Callee2.this.increment(); }}Incrementable getCallbackReference() { return new Closure();}}class Caller { private Incrementable callbackReference; Caller(Incrementable cbh) { callbackReference = cbh; } void go() { callbackReference.increment(); }}public class Callbacks { public static void main(String[] args) { // TODO Auto-generated method stub Callee1 c1 = new Callee1(); Callee2 c2 = new Callee2(); MyIncrement.f(c2); Caller caller1 = new Caller(c1); Caller caller2 = new Caller(c2.getCallbackReference()); caller1.go(); caller1.go(); caller2.go(); caller2.go(); }}
output:
Other operation112Other operation2Other operation3
1 0
- Thinking in Java(9)-closures and callbacks
- Closures callbacks Inner Classes
- Iteration and closures in R
- thinking in java(III)--initialization and cleanup
- thinking in java(V)--composition and inheritance
- Thinking in java (RTTI And Reflection)
- Thinking in Java(8)-inheritance and cleanup
- Callbacks (Bruce Eckel's Thinking in C++, 2nd Ed)
- Function Pointers and Callbacks in C
- Lexical scope and function closures in R
- Thinking in Java笔记9
- Closure与回调(Closures & Callbacks)
- thinking in java(VII)--interfaces and inner classes
- Thinking in Java(6)-combinning composition and inheritance
- 【Java】 Thinking in Java 4.8 练习9
- [Java]Thinking in Java
- thinking in NoSQL and moreSQL
- Thinking in Java 第9章 接口
- wdcp+nginx+apache+mysql+php+免费申请ssl证书实现https访问
- 俄罗斯卢布为什么整个2016年都在升值?
- html之属性的应用
- Android数据库的基本使用,增删改查!
- KinectV2+Ubuntu 14.04+Ros 安装教程
- Thinking in Java(9)-closures and callbacks
- android设置白天模式和夜间模式
- Kurento-room-demo 模块图
- IDEA插件开发初体验之(GET/SET自动生成带模版注释插件的开发与使用)
- axis2 WebService的发布与调用
- 基于react+redux+webpack的前端框架
- 关于Databinding的使用
- 开发工具-Fiddler的介绍
- Android 如何让app自行处理power key