public class Foo{ private static Object mO; private static class FooHolder{ static final Foo INSTANCE=new Foo(mO); } public static Foo getInstance(Object o){ mO=o; return FooHolder,INSTANCE; } }