Java Class New Instance newInstance(String className, Class instanceClazz)

Here you can find the source of newInstance(String className, Class instanceClazz)

Description

Returns a new instance of classname and check that it's assignable from expected class

License

Open Source License

Parameter

Parameter Description
className The class Name
instanceClazz The expected class
T The expected class

Declaration

@SuppressWarnings("unchecked")
public static <T> T newInstance(String className, Class<? extends T> instanceClazz) 

Method Source Code

//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);
        }
    }
}

Related

  1. newInstance(String className)
  2. newInstance(String className)
  3. newInstance(String className)
  4. newInstance(String className)
  5. newInstance(String className)
  6. newInstance(String className, Class cls)
  7. newInstance(String className, Class context)
  8. newInstance(String className, Class castTo)
  9. newInstance(String className, Class[] parmsCls, Object[] parms)