Lambdas
From APIDesign
| (5 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
| - | [[Lambdas]] are [[Java]] implementation of [[Closures]] and are coming   | + | [[Lambdas]] are [[Java]] implementation of [[Closures]] and are coming in [[JDK]]8.  | 
== Don't Know the Syntax? ==  | == Don't Know the Syntax? ==  | ||
| Line 23: | Line 23: | ||
</source>  | </source>  | ||
| - | No luck either. I gave up and rewrote the code to old good inner class syntax:  | + | No luck either. I gave up and rewrote the code to old good verbose but familiar inner class syntax:  | 
<source lang="java">  | <source lang="java">  | ||
| - |     doRun(new Runnable() { public void run() {  | + |   public static void main(String... args) {  | 
| - | + |     doRun(new Runnable() {  | |
| - | + |         @Override  | |
| + |         public void run() {  | ||
| + |             System.out.println("Hello World!");  | ||
| + |         }  | ||
| + |     });  | ||
| + |   }      | ||
</source>  | </source>  | ||
and suddenly a hint appeared:  | and suddenly a hint appeared:  | ||
| + | |||
| + | [[Image:Lambdas.png]]  | ||
| + | |||
| + | after applying the hint I finally got [[lambda]] syntax right:  | ||
| + | |||
| + | <source lang="java">  | ||
| + | public class LambdaTest {  | ||
| + |  static void doRun(Runnable r) {  | ||
| + |     r.run();  | ||
| + |   }  | ||
| + | |||
| + |   public static void main(String... args) {  | ||
| + |     doRun(() -> System.out.println("Hello World!"));  | ||
| + |   }      | ||
| + | }  | ||
| + | </source>  | ||
| + | |||
| + | [[NetBeans]] own source code sticks (and will stick) with [[JDK]]7 for a while. As such I don't have much chances to use [[lambdas]], but I can say I can write [[lambdas]], now (of course only with massive help from the [[NetBeans]] IDE)!  | ||
| + | |||
| + | Just one thing I don't understand: Why people claim [[NetBeans]] IDE does not understand [[lambdas]]?  | ||
Current revision
Lambdas are Java implementation of Closures and are coming in JDK8.
Don't Know the Syntax?
Yesterday I had a duty at NetBeans JavaOne2013 booth. Somebody asked whether NetBeans support lambda. Sure, NetBeans 7.4 do! was my answer. But how to demonstrate that? I tried:
class LamdaTest { static void doRun(Runnable r) { r.run(); } public static void main(String... args) { doRun({ System.out.println("Hello World!"); }); } }
it did not compile. Then I tried to change the lambda line to:
doRun( => { System.out.println("Hello World!"); });
No luck either. I gave up and rewrote the code to old good verbose but familiar inner class syntax:
public static void main(String... args) { doRun(new Runnable() { @Override public void run() { System.out.println("Hello World!"); } }); }
and suddenly a hint appeared:
after applying the hint I finally got lambda syntax right:
public class LambdaTest { static void doRun(Runnable r) { r.run(); } public static void main(String... args) { doRun(() -> System.out.println("Hello World!")); } }
NetBeans own source code sticks (and will stick) with JDK7 for a while. As such I don't have much chances to use lambdas, but I can say I can write lambdas, now (of course only with massive help from the NetBeans IDE)!
Just one thing I don't understand: Why people claim NetBeans IDE does not understand lambdas?
