class Foo { Foo() { System.out.println("Initializing " + toString()); } Foo getInnerFoo() { return new Foo() { public String toString() { return Foo.this.getClass().getName(); } }; } public static void main(String[] args) { new Foo().getInnerFoo(); } }