java所謂的閉包與回撥
阿新 • • 發佈:2019-01-23
之所以覺得javascript寫起來特別的爽,尤其是在編寫非同步程式的時候,是因為javascript的閉包,使得我們能夠簡單的寫出非同步回調回調函式。。。。所以node.js的非同步程式設計也能很簡單的實現。。
在伺服器端程式設計方面,高效能十分依賴非阻塞,非同步和回撥,同時java這一大大的語言卻並沒有閉包這一概念(據說新版本有,但是我不知道),也可以採用一定委婉的方式來實現。。。。那就是內部類,因為內部類可以訪問所屬的外部類物件的所有屬性與方法,包括private的。。。。
好了,直接上程式碼吧:
這樣子看起來貌似也能實現閉包和回撥,但是總覺得比較弱,而且並不能適合所有的情況。。。public interface Incrementable { public int incrment(); } public class MyIncremetable{ private int a = 0; public Incrementable getCaller(){ return new Incrementable(){ @Override public int incrment() { // TODO Auto-generated method stub a++; return a; } }; } public static void main(String args[]) { MyIncremetable m = new MyIncremetable(); Incrementable inc = m.getCaller(); System.out.println(inc.incrment()); } }