Java Class New Instance newInstance(Class type)

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

Description

new Instance

License

Apache License

Declaration

public static <T> T newInstance(Class<T> type) 

Method Source Code

//package com.java2s;
/**/*w  w  w.  j av a 2  s  .  c  om*/
 * Copyright (C) 2013-2015 all@code-story.net
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License
 */

import java.lang.reflect.Constructor;

import java.lang.reflect.InvocationTargetException;

public class Main {
    public static <T> T newInstance(Class<T> type) {
        Constructor<T> constructor;
        try {
            constructor = type.getDeclaredConstructor();
            constructor.setAccessible(true);
        } catch (NoSuchMethodException e) {
            throw new IllegalArgumentException(
                    "Couldn't create Page Object. Missing 0 arg constructor on type " + type, e);
        }

        T instance;
        try {
            instance = constructor.newInstance();
        } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {
            throw new IllegalArgumentException("Unable to create instance of type " + type, e);
        }

        return instance;
    }
}

Related

  1. newInstance(Class theClass)
  2. newInstance(Class theClass, Class[] parameterTypes, Object[] initargs)
  3. newInstance(Class theClass, Object... initArgs)
  4. newInstance(Class theClass, String className)
  5. newInstance(Class theCls)
  6. newInstance(Class type)
  7. newInstance(Class type)
  8. newInstance(Class type)
  9. newInstance(Class type)