Java tutorial
//package com.java2s; import java.lang.reflect.ParameterizedType; public class Main { public static <T> T getT(Object o, int i) { try { return ((Class<T>) ((ParameterizedType) (o.getClass().getGenericSuperclass())) .getActualTypeArguments()[i]).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (ClassCastException e) { e.printStackTrace(); } return null; } }