Lambda表示式是Java SE 8中最重要的新特性。
長期以來,Lambda表示式一直被認為是Java中缺少的特性。
Lambda表示式語法(引數列表) -> 語句
或者
(引數列表) -> { 語句組}
Lambda表示式簡化程式碼的例子
Lambda表示式也稱為閉包(closures),它可以使某些Java程式碼結構更簡短,更易於閱讀,尤其是在使用內部類時。
closure美 ['kloʊʒər]英 ['kləʊʒə(r)]n.關閉;倒閉;(路或橋的)暫時封閉v.使結束網路閉包;閉合;封閉性
考慮下面的程式碼片段,它使用java.lang.Runnable介面定義一個匿名內部類同時例項化該類:
Runnable runnable = new Runnable() { @Override public void run() { System.out.println("Running..."); }}
使用Lambda表示式可將上述程式碼替換為如下形式:
Runnable runnable = () -> System.out.println("Running...");
換句話說,如果需要將Runnable傳遞給java.util.concurrent.Executor,可以寫成下面這樣:
executor.execute(new Runnable() { @Override public void run() { System.out.println("Running..."); }});
使用如下的Lambda表示式有相同的效果:
executor.execute(() -> System.out.println("Running..."));
這樣的程式碼簡短、親切,同時更清晰,也更具表現力。
最新評論