java获取父类的泛型<T>对象

泛型抽象父类

在这里插入图片描述

子类

子类继承泛型抽象父类并且传递泛型对象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];

在这里插入图片描述

运行测试查看

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45502336/article/details/129466273