Lambda conversion in Method invocation context

Arul Dhesiaseelan aruld at acm.org
Thu Nov 11 20:21:17 PST 2010


Hi,

I get the following compile error when I use a lambda in a method invocation
context:

SimpleRunnable.java:14: internal error; cannot instantiate println(String)
at ExecutorService to (<>#void())
                executor.submit(#{System.out.println("Processing a
short-lived asynchronous task.")});
                               ^
1 error


final ExecutorService executor = Executors.newCachedThreadPool();
Runnable task = #{ System.out.println("Processing a short-lived asynchronous
task.") };//compiles
executor.submit(task);
task = (Runnable)#{System.out.println("Processing a short-lived asynchronous
task.")};//compiles
executor.submit(task);
executor.submit(#{System.out.println("Processing a short-lived asynchronous
task.")});//fails

I am not sure if this is supported in the compiler yet. Just thought of
checking on the mailing list.

-Arul


More information about the lambda-dev mailing list