static Map classForName_cache = synchroHashMap(); static Class classForName(S name, O classFinder default null) { // first clause is when we're in class init if (classForName_cache == null || classFinder != null) ret classForName_uncached(name, classFinder); Class c = classForName_cache.get(name); if (c == null) classForName_cache.put(name, c = classForName_uncached(name)); ret c; } static Class classForName_uncached(S name, O classFinder) ctex { if (classFinder != null) ret (Class) callF(classFinder, name); ret Class.forName(name); }