package cn.org.rapid_framework.generator.util; public class ClassHelper { public static Object newInstance(Class<?> c) { try { return c.newInstance(); } catch (Exception e) { throw new IllegalArgumentException( "cannot new instance with class:" + c.getName(), e); } } public static Object newInstance(String className) { try { return newInstance(Class.forName(className)); } catch (Exception e) { throw new IllegalArgumentException( "cannot new instance with className:" + className, e); } } /** * Return the default ClassLoader to use: typically the thread context * ClassLoader, if available; the ClassLoader that loaded the ClassUtils * class will be used as fallback. * <p>Call this method if you intend to use the thread context ClassLoader * in a scenario where you absolutely need a non-null ClassLoader reference: * for example, for class path resource loading (but not necessarily for * <code>Class.forName</code>, which accepts a <code>null</code> ClassLoader * reference as well). * @return the default ClassLoader (never <code>null</code>) * @see java.lang.Thread#getContextClassLoader() */ public static ClassLoader getDefaultClassLoader() { ClassLoader cl = null; try { cl = Thread.currentThread().getContextClassLoader(); } catch (Throwable ex) { // Cannot access thread context ClassLoader - falling back to system class loader... } if (cl == null) { // No thread context class loader -> use class loader of this class. cl = ClassHelper.class.getClassLoader(); } return cl; } }