Here you can find the source of newInstance(String className, Class[] parmsCls, Object[] parms)
Parameter | Description |
---|---|
className | specified class name |
parmsCls | parameters types of constructor |
parms | parameters of constructor |
public static Object newInstance(String className, Class[] parmsCls, Object[] parms) throws Exception
//package com.java2s; /*/*from w w w . jav a 2 s .c o m*/ * $Id: Util.java,v 1.8 2002/07/15 02:15:03 skavish Exp $ * * =========================================================================== * * The JGenerator Software License, Version 1.0 * * Copyright (c) 2000 Dmitry Skavish (skavish@usa.net). All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by Dmitry Skavish * (skavish@usa.net, http://www.flashgap.com/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The name "The JGenerator" must not be used to endorse or promote * products derived from this software without prior written permission. * For written permission, please contact skavish@usa.net. * * 5. Products derived from this software may not be called "The JGenerator" * nor may "The JGenerator" appear in their names without prior written * permission of Dmitry Skavish. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL DMITRY SKAVISH OR THE OTHER * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * */ import java.lang.reflect.*; public class Main { /** * Creates new instance of an specified class * * @param className specified class name * @param parmsCls parameters types of constructor * @param parms parameters of constructor * @return new instance * @exception Exception */ public static Object newInstance(String className, Class[] parmsCls, Object[] parms) throws Exception { Class clazz = Class.forName(className); if (parmsCls == null) { return clazz.newInstance(); } else { Constructor constr = clazz.getConstructor(parmsCls); return constr.newInstance(parms); } } }