Java Class New Instance newInstance(Class clazz)

Here you can find the source of newInstance(Class clazz)

Description

new Instance

License

Open Source License

Declaration

public static Object newInstance(Class<?> clazz) throws InstantiationException, IllegalAccessException 

Method Source Code

//package com.java2s;
/*//www.  ja v a 2  s .  co m
 * Copyright (C) 2002, 2004 Takao Nakaguchi.
 *
 * This is a program for Language Grid Core Node. This combines multiple language resources and provides composite language services.
 * Copyright (C) 2005-2008 NICT Language Grid Project.
 * Copyright (C) 2014 Language Grid Project.
 *
 * This program is free software: you can redistribute it and/or modify it 
 * under the terms of the GNU Lesser General Public License as published by 
 * the Free Software Foundation, either version 2.1 of the License, or (at 
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser 
 * General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License 
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

import java.lang.reflect.Array;

import java.util.Calendar;

import java.util.HashMap;

import java.util.Map;

public class Main {
    private static Map<String, Class<?>> nameToPrimitiveClass = new HashMap<String, Class<?>>();
    private static Map<String, Class<?>> primitiveToWrapperClass = new HashMap<String, Class<?>>();
    private static Map<Class<?>, Object> primitiveToDefault = new HashMap<Class<?>, Object>();

    public static Object newInstance(Class<?> clazz) throws InstantiationException, IllegalAccessException {
        if (clazz.isPrimitive()) {
            return primitiveToDefault.get(clazz);
        } else if (Calendar.class.isAssignableFrom(clazz)) {
            return Calendar.getInstance();
        } else if (clazz.isArray()) {
            Class<?> ct = clazz.getComponentType();
            Object a = Array.newInstance(ct, 1);
            Array.set(a, 0, newInstance(ct));
            return a;
        }
        return clazz.newInstance();
    }

    /**
     * 
     * 
     */
    public static boolean isPrimitive(String className) {
        return nameToPrimitiveClass.containsKey(className);
    }

    /**
     * 
     * 
     */
    public static boolean isAssignableFrom(Class<?> class1, Class<?> class2) {
        if (class1.isAssignableFrom(class2))
            return true;
        if (!class1.isPrimitive())
            return false;
        Class<?> wrapper = primitiveToWrapperClass.get(class1.getName());
        return wrapper.isAssignableFrom(class2);
    }
}

Related

  1. newInstance(Class targetClass)
  2. newInstance(Class cl, Object[] args)
  3. newInstance(Class clazz)
  4. newInstance(Class componentType, int length)
  5. newInstance(Class classZ)
  6. newInstance(Class clazz)
  7. newInstance(Class clazz)
  8. newInstance(Class clazz)
  9. newInstance(Class clazz)