lambda bugs? referencing instance variable from lambda body
Zhong Yu
zhong.j.yu at gmail.com
Tue Sep 24 06:22:12 PDT 2013
Hi, has someone looked into these two bugs? Especially the 2nd one
which is pretty odd.
On Thu, Sep 12, 2013 at 5:59 PM, Zhong Yu <zhong.j.yu at gmail.com> wrote:
> This compiles . . . . . . . . . . . . . . . . . . . . . . . . .
>
> public class Tmp
> {
> final Runnable r1 = ()->System.out.println(r1);
> }
>
> This does NOT . . . . . . . . . . . . . . . . . . . . . . . . .
>
> public class Tmp
> {
> final Runnable r1;
>
> final Runnable r2 = ()-> System.out.println(r1); // Error: r1 not
> initialized
>
> Tmp()
> {
> r1 = ()->System.out.println(r1); // Error: r1 not initialized
> }
> }
>
>
>
> This compiles . . . . . . . . . . . . . . . . . . . . . . . . .
>
> public class Tmp
> {
> final Object lock = new Object();
>
> final Runnable r2 = ()->{
> System.out.println(r2);
> synchronized (lock){
> }
> };
> }
>
> This does NOT . . . . . . . . . . . . . . . . . . . . . . . . .
>
> public class Tmp
> {
> final Object lock = new Object();
>
> final Runnable r2 = ()->{
> synchronized (lock){
> System.out.println(r2); // Error: self-reference in initializer
> }
> };
> }
>
>
> Zhong Yu
More information about the lambda-dev
mailing list