泛型抽象父类
子类
子类继承泛型抽象父类并且传递泛型对象LoginUser
如何获取父类泛型对象
public abstract class AbstractRedisOperate<T> implements RedisOperate<T> {
Map<String, T> map = new HashMap<>();
private Class<T> obj;
public AbstractRedisOperate(){
//在这里 this 代表子类对象
//获取父类的泛型<T>
Type genericSuperclass = this.getClass().getGenericSuperclass();
//Type强转成子类ParameterizedType这样就可以通过子类的getActualTypeArguments获取类对象
ParameterizedType parameterizedType = (ParameterizedType)genericSuperclass;
obj = (Class)parameterizedType.getActualTypeArguments()[0];
}
@Override
public void put(String var1, T var2) {
this.map.put(var1,var2);
}
@Override
public T get(String var1) {
return this.map.get(var1);
}
}
核心代码:
//在这里 this 代表子类对象
//获取父类的泛型<T>
Type genericSuperclass = this.getClass().getGenericSuperclass();
//Type强转成子类ParameterizedType这样就可以通过子类的getActualTypeArguments获取类对象
ParameterizedType parameterizedType = (ParameterizedType)genericSuperclass;
obj = (Class)parameterizedType.getActualTypeArguments()[0];