static new HashMap nuEmptyObject_cache; static A nuEmptyObject(Class c) ctex { Constructor ctr; synchronized(nuEmptyObject_cache) { ctr = nuEmptyObject_cache.get(c); if (ctr == null) { nuEmptyObject_cache.put(c, ctr = nuEmptyObject_findConstructor(c)); ctr.setAccessible(true); } } ret (A) ctr.newInstance(); } static Constructor nuEmptyObject_findConstructor(Class c) { for (Constructor m : c.getDeclaredConstructors()) if (m.getParameterTypes().length == 0) ret m; fail("No default constructor declared in " + c.getName()); }