All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.invation.code.toval.reflect.GenericReflection Maven / Gradle / Ivy

package de.invation.code.toval.reflect;

import java.lang.reflect.InvocationTargetException;

public class GenericReflection {

	@SuppressWarnings("unchecked")
	public static  T newInstance(T obj) throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
		Object newobj = obj.getClass().getConstructor().newInstance();
		return (T) newobj;
	}

	@SuppressWarnings("unchecked")
	public static  T newInstance(Class classType) throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
		Object newobj = classType.getConstructor().newInstance();
		return (T) newobj;
	}

	@SuppressWarnings("unchecked")
	public static  Class getComponentType(T[] a) {
		Class k = a.getClass().getComponentType();
		return (Class) k;
	}

	@SuppressWarnings("unchecked")
	public static  T[] newArray(Class k, int size) {
		if (k.isPrimitive())
			throw new IllegalArgumentException("Argument cannot be primitive: " + k);
		Object a = java.lang.reflect.Array.newInstance(k, size);
		return (T[]) a;
	}

	public static  T[] newArray(T[] a, int size) {
		return newArray(getComponentType(a), size);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy