public class SomeOne< T1, T2, T3...>{
public void getClass(){
Type genType = getClass().getGenericSuperclass();
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
Class<T1> t1Class = (Class) params[0];
Class<T2> t2Class = (Class) params[1];
......
}
}
有了class,可以通过反射instance对象了
Constructor constructor = t1Class.getDeclaredConstructor(new Class[]{Param1.class, Param2.class...});
T1 ti = (T1) constructor.newInstance(new Object[]{param1, param2...});