class A { class B { private String foo; public void run() { new B() { @Override public void run() { moo(A.this); } }; } void moo(A a) { System.out.println(foo); } } }