簡體   English   中英

Java通用類通過擴展抽象類而被“參數化”

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM