Thinking in Java(9)-closures and callbacks
2016-12-19 17:49
429 查看
对closures and callbacks不是很理解,先记下来慢慢理解QAQ:
output:
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 operation 1 1 2 Other operation 2 Other operation 3
相关文章推荐
- [Java学习] Iterator, foreach, generics and callback in Java, C# and Python
- 《Thinking in Java》 And 《Effective Java》啃起来
- 买了thinking in java
- Thinking in Java中文版 1
- 《Thinking in Java》读书笔记(二)
- 很多人知道《Thinking in Java》吧,那么《Thinking in C#》呢?
- LiteMda - my thinking in mda and aop - framework diagram draft
- 《Core Java 2》与《Thinking in Java》之我见:)
- [coding] Threading differences in C# and Java
- 《Thinking in Java》读书笔记
- Thinking in Java 读书笔记 —— 1.Introducation to Object
- Thinking in Java 中文版 2
- 《Thinking in Java》学习笔记(二)——万事万物皆对象
- 《Thinking in Java》学习笔记(一)——对象导论
- Reading "Thinking in Java" #6
- Thinking in Java 10
- Reading "Thinking in Java" #2
- Exceptions in Java and C#
- LiteMda - my thinking in mda and aop - framework diagram draft
- 大名鼎鼎的thinking in java 作者的主页。