[英]Java generic class “parameterized” by something extending an abstract class
我有一個AbstractCacheBlock
,我想定義一個CacheSet
類,其中包含許多擴展AbstractCacheBlock
類。 我相信我想要的是
public class CacheSet<? extend AbstractCacheBlock>
但這似乎無效。 那我該怎么稱呼那個班呢? 通常看起來像
public class CacheSet<T> {
public void something() {
T t = new T();
}
那我用什么代替T
?
初始化泛型類型的實例的唯一方法是傳遞Class的實例,例如:
public class CacheSet<T>
{
private Class<T> clazz;
public CacheSet(Class<T> clazz)
{
this.clazz = clazz;
}
public void something()
{
T t = clazz.newInstance();
}
}
用T
創建對象是不可行的。 您可以將依賴項添加到可以創建新T
對象的類。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.