Lambdas

From APIDesign

(Difference between revisions)
Jump to: navigation, search
Current revision (17:32, 24 September 2013) (edit) (undo)
 
(3 intermediate revisions not shown.)
Line 1: Line 1:
-
[[Lambdas]] are [[Java]] implementation of [[Closures]] and are coming with [[JDK]]8.
+
[[Lambdas]] are [[Java]] implementation of [[Closures]] and are coming in [[JDK]]8.
== Don't Know the Syntax? ==
== Don't Know the Syntax? ==
Line 40: Line 40:
[[Image:Lambdas.png]]
[[Image:Lambdas.png]]
-
after applying the hint I finally got correct [[lambdas]] syntax:
+
after applying the hint I finally got [[lambda]] syntax right:
<source lang="java">
<source lang="java">
Line 54: Line 54:
</source>
</source>
-
[[NetBeans]] own source code sticks (and will stick) with [[JDK]]7. As such I don't have much chances to use [[lambdas]], but I can say I can write [[lambdas]], now!
+
[[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]]?
+
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:

Image:Lambdas.png

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?

Personal tools
buy