Java tutorial
import java.lang.reflect.Method; import java.lang.reflect.TypeVariable; public class Main<T> { <E extends RuntimeException> T genericThrow(T t) throws E { return t; } public static void main(String... args) { try { Class<?> c = Class.forName("Main"); Method[] allMethods = c.getDeclaredMethods(); for (Method m : allMethods) { TypeVariable[] types = m.getTypeParameters(); for (TypeVariable t : types) { System.out.println(t); } } } catch (ClassNotFoundException x) { x.printStackTrace(); } } }