0

我有一个AbstractCacheBlock并且我想定义一个CacheSet包含许多扩展类的类AbstractCacheBlock。我相信我想要的是

public class CacheSet<? extend AbstractCacheBlock>

但这似乎无效。那我怎么能引用那个类呢?通常它看起来像

public class CacheSet<T> {
    public void something() {
        T t = new T();
    }

我用什么代替Tthen?

4

2 回答 2

9

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

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

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

    public void something()
    {
        T t = clazz.newInstance();
    }
}
于 2013-11-05T13:37:22.013 回答
1

创建对象T是不可行的。您可以将依赖项添加到可以创建新T对象的类。

于 2013-11-05T13:39:02.280 回答