Generic abstract parent class
Subclass
The subclass inherits the generic abstract parent class and passes the generic objectLoginUser
How to get parent class generic object
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);
}
}
Core code:
//在这里 this 代表子类对象
//获取父类的泛型<T>
Type genericSuperclass = this.getClass().getGenericSuperclass();
//Type强转成子类ParameterizedType这样就可以通过子类的getActualTypeArguments获取类对象
ParameterizedType parameterizedType = (ParameterizedType)genericSuperclass;
obj = (Class)parameterizedType.getActualTypeArguments()[0];