class A<T,S> {
//获取S的class
public Class<T> poClass = (Class<T>) (((ParameterizedType) this.getClass().getGenericSuperclass())).getActualTypeArguments()[1];
/**
* 获取po对象
* @return
*/
public T getPo() {
T t = null;
try {
t = poClass.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return t;
}
}
class B extends A<String,Integer> {
}
public class Generic {
public static void main(String[] args) {
//输出class java.lang.Integer
System.out.println( new B().poClass);
}
}
在base类中获取泛型的类型和泛型对象
最新推荐文章于 2023-11-22 23:05:22 发布