e.printStackTrace();
    public static Object instantiateByClassName(final String className, final Class superClass,            final Object defaultValue) {        if (className != null) {            try {                Class classObj = Loader.loadClass(className);                if (!superClass.isAssignableFrom(classObj)) {                    getLogger().log(                            Level.SEVERE,                            "A \"" + className + "\" object is not assignable to a \""                                    + superClass.getName() + "\" variable.");                    getLogger().log(Level.SEVERE,                            "The class \"" + superClass.getName() + "\" was loaded by ");                    getLogger().log(Level.SEVERE,                            "[" + superClass.getClassLoader() + "] whereas object of type ");                    getLogger().log(                            Level.SEVERE,                            "\"" + classObj.getName() + "\" was loaded by ["                                    + classObj.getClassLoader() + "].");                    return defaultValue;                }                // System.out.println("About to call classObj.newInstance(),                // "+classObj.getName());                return classObj.newInstance();            } catch (NoClassDefFoundError ncfe) {                getLogger().log(Level.SEVERE,                        "Could not instantiate object of class [" + className + "].", ncfe);            } catch (Throwable e) {                getLogger().log(Level.SEVERE,                        "Could not instantiate object of class [" + className + "].", e);            }        }        return defaultValue;    }