Java泛型类通过扩展抽象类的东西"参数化"

Jie*_*eng 0 java generics

我有一个AbstractCacheBlock,我想定义一个CacheSet包含许多类扩展的类AbstractCacheBlock.我相信我想要的是类似的东西

public class CacheSet<? extend AbstractCacheBlock>
Run Code Online (Sandbox Code Playgroud)

但这似乎没有效果.那我怎么能参考那门课呢?通常它看起来像

public class CacheSet<T> {
    public void something() {
        T t = new T();
    }
Run Code Online (Sandbox Code Playgroud)

我用什么代替T当时的?

Eng*_*uad 9

初始化泛型类型实例的唯一方法是传递类的实例,如:

public class CacheSet<T>
{
    private Class<T> clazz;

    public CacheSet(Class<T> clazz)
    {
        this.clazz = clazz;
    }

    public void something()
    {
        T t = clazz.newInstance();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • +可能类似于:`public class CacheSet <T extends AbstractCacheBlock> {...}` (2认同)