Java gets the generic <T> object of the parent class

Generic abstract parent class

insert image description here

Subclass

The subclass inherits the generic abstract parent class and passes the generic objectLoginUser
insert image description here

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];

insert image description here

run test view

insert image description here

Guess you like

Origin blog.csdn.net/qq_45502336/article/details/129466273