需求

做抽象封装时候定义了一个参数泛型如下:

	public abstract class AbstractDemo<T extends Param> {

	public void method(String param) {
	
	}

其中paramjson字符串,想要反序列化为T的对象

实现

	public abstract class AbstractDemo<T extends Param> {

	public void method(String param) {
		ParameterizedType ptype = (ParameterizedType) this.getClass().getGenericSuperclass();
		Type clazz = ptype.getActualTypeArguments()[0];
		T selfParam = JSON.parseObject(param, clazz);
	}

JAVA泛型实例化代码

	ParameterizedType ptype = (ParameterizedType) this.getClass().getGenericSuperclass();
	Class clazz = (Class<T>) ptype.getActualTypeArguments()[0];
	T o = (T) clazz.newInstance();//o 即为泛型实例化对象

参考

  1. JAVA泛型实例化代码