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?