Java tutorial
//package com.java2s; //License from project: Apache License import android.support.annotation.NonNull; import java.lang.reflect.Constructor; public class Main { @SuppressWarnings("unchecked") public static <T> T newInstance(@NonNull Class<T> cls) { final Constructor ctor = getDefaultConstructor(cls); try { return (T) ctor.newInstance(); } catch (Throwable t) { t.printStackTrace(); throw new RuntimeException("Failed to instantiate " + cls.getName() + ": " + t.getLocalizedMessage()); } } private static Constructor<?> getDefaultConstructor(@NonNull Class<?> cls) { final Constructor[] ctors = cls.getDeclaredConstructors(); Constructor ctor = null; for (Constructor ct : ctors) { ctor = ct; if (ctor.getGenericParameterTypes().length == 0) break; } if (ctor == null) throw new IllegalStateException("No default constructor found for " + cls.getName()); ctor.setAccessible(true); return ctor; } }