Here you can find the source of newInstance(String className, Class extends T> instanceClazz)
Parameter | Description |
---|---|
className | The class Name |
instanceClazz | The expected class |
T | The expected class |
@SuppressWarnings("unchecked") public static <T> T newInstance(String className, Class<? extends T> instanceClazz)
//package com.java2s; /**// w w w . ja va 2 s .c o m * Copyright 2005-2014 Restlet * * The contents of this file are subject to the terms of one of the following * open source licenses: Apache 2.0 or or EPL 1.0 (the "Licenses"). You can * select the license that you prefer but you may not use this file except in * compliance with one of these Licenses. * * You can obtain a copy of the Apache 2.0 license at * http://www.opensource.org/licenses/apache-2.0 * * You can obtain a copy of the EPL 1.0 license at * http://www.opensource.org/licenses/eclipse-1.0 * * See the Licenses for the specific language governing permissions and * limitations under the Licenses. * * Alternatively, you can obtain a royalty free commercial license with less * limitations, transferable or non-transferable, directly at * http://restlet.com/products/restlet-framework * * Restlet is a registered trademark of Restlet S.A.S. */ public class Main { /** * Returns a new instance of classname and check that it's assignable from * expected class * * @param className * The class Name * @param instanceClazz * The expected class * @param <T> * The expected class */ @SuppressWarnings("unchecked") public static <T> T newInstance(String className, Class<? extends T> instanceClazz) { if (className == null) { return null; } try { Class<?> clazz = Class.forName(className); if (instanceClazz.isAssignableFrom(clazz)) { return (T) clazz.getConstructor().newInstance(); } else { throw new RuntimeException(className + " does not seem to be a valid subclass of " + instanceClazz.getName() + " class."); } } catch (ClassNotFoundException e) { throw new RuntimeException("Cannot locate the class " + className + " in the classpath.", e); } catch (Exception e) { throw new RuntimeException( "Cannot instantiate the class. " + "Check that the class has an empty constructor.", e); } } }