Generic lambdas
Brian Goetz
brian.goetz at oracle.com
Wed Nov 16 11:19:29 PST 2011
Yes, Maurizio posted a list of gaps between the compiler binaries and the spec, this was one of them.
On Nov 16, 2011, at 6:59 PM, Miles Sabin wrote:
> I've just been attempting to play with generic lambdas using the
> binary JDK 8 snapshot posted a few days ago,
>
> miles at lewis:lambda$ /usr/java/lambda-jdk/bin/java -version
> openjdk version "1.8.0-ea"
> OpenJDK Runtime Environment (build 1.8.0-ea-b1314)
> OpenJDK 64-Bit Server VM (build 23.0-b04, mixed mode)
>
> I took this example from the EDR,
>
> public class Lambda {
> public static interface Picker {
> <T> T pick(T first, T second);
> }
>
> public static void main(String[] args) {
> Picker rand = <T> (T first, T second) -> new
> Random().nextBoolean() ? first : second ;
> int i = rand.pick(1, 2);
> String s = rand.pick("a", "b");
> }
> }
>
> But this fails compilation as follows,
>
> miles at lewis:lambda$ /usr/java/lambda-jdk/bin/javac Lambda.java
> Lambda.java:7: error: illegal start of expression
> Picker rand = <T> (T first, T second) -> new
> Random().nextBoolean() ? first : second ;
>
> ^
> 1 error
>
> Is this expected at present?
>
> Cheers,
>
>
> Miles
>
> --
> Miles Sabin
> tel: +44 7813 944 528
> gtalk: miles at milessabin.com
> skype: milessabin
> g+: http://www.milessabin.com
> http://twitter.com/milessabin
> http://www.chuusai.com/
>
More information about the lambda-dev
mailing list