我有一个AbstractCacheBlock
,我想要定义一个包含许多扩展CacheSet
的类的类AbstractCacheBlock
。我相信我想要的是像
public class CacheSet<? extend AbstractCacheBlock>
但这似乎没有效果。那我怎么能参考那门课呢?通常它看起来像
public class CacheSet<T> {
public void something() {
T t = new T();
}
我用什么代替T
呢?
答案 0 :(得分:9)
初始化泛型类型实例的唯一方法是传递类的实例,如:
public class CacheSet<T>
{
private Class<T> clazz;
public CacheSet(Class<T> clazz)
{
this.clazz = clazz;
}
public void something()
{
T t = clazz.newInstance();
}
}
答案 1 :(得分:1)
使用T
创建对象是不可行的。
您可以向可以创建新T
对象的类添加依赖项。