try {  c = Class.forName(classname); CacheHolder.cache.put(classname, c); } catch (ClassNotFoundException e) {   c = null; CacheHolder.cache.put(classname, null); }
c = Class.forName(classname);     CacheHolder.cache.put(classname, c);
    static Class ClassForName(String classname) throws ClassNotFoundException    {        Class c;        // the first time the next line runs will reference        // CacheHolder, causing the class to load and create the        // Hashtable.        Object o = CacheHolder.cache.get(classname);        if (o == null)        {            try            {                // class was not in the cache, so try to load it                c = Class.forName(classname);                CacheHolder.cache.put(classname, c);            }            catch (ClassNotFoundException e)            {                // class could not be loaded, lets put it in the                // cache anyway to make subsequent attempts quicker.                c = null;                CacheHolder.cache.put(classname, null);            }        }        else        {            c = (Class)o;        }        if (c == null)            throw new ClassNotFoundException(); // never return null        return c;    }