需求
做抽象封装时候定义了一个参数泛型如下:
public abstract class AbstractDemo<T extends Param> {
public void method(String param) {
}
其中param
为json
字符串,想要反序列化为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 即为泛型实例化对象