Java泛型类“;参数化;通过扩展一个抽象类
我有一个Java泛型类“;参数化;通过扩展一个抽象类,java,generics,Java,Generics,我有一个AbstractCacheBlock,我想定义一个类CacheSet,它包含许多扩展AbstractCacheBlock的类。我相信我想要的是 public class CacheSet<? extend AbstractCacheBlock> public class CacheSet初始化泛型类型实例的唯一方法是传递该类的实例,如: public class CacheSet<T> { private Class<T> clazz;
AbstractCacheBlock
,我想定义一个类CacheSet
,它包含许多扩展AbstractCacheBlock
的类。我相信我想要的是
public class CacheSet<? extend AbstractCacheBlock>
public class CacheSet初始化泛型类型实例的唯一方法是传递该类的实例,如:
public class CacheSet<T>
{
private Class<T> clazz;
public CacheSet(Class<T> clazz)
{
this.clazz = clazz;
}
public void something()
{
T t = clazz.newInstance();
}
}
公共类缓存集
{
私人课堂;
公共缓存集(clazz类)
{
this.clazz=clazz;
}
公之于众
{
T=clazz.newInstance();
}
}
使用T
创建对象是不可行的。
您可以向可以创建新T
对象的类添加依赖项。为什么要在缓存集中创建实例?你不应该添加已经创建的实例吗?@SotiriosDelimanolis,也许你是对的,我应该在外部初始化它+可能类似于:public class CacheSet{…}
public class CacheSet<T>
{
private Class<T> clazz;
public CacheSet(Class<T> clazz)
{
this.clazz = clazz;
}
public void something()
{
T t = clazz.newInstance();
}
}