[英]Java generic return generic list of type of parameter
我想創建以下內容:
//infer the type from parameter but restrict it to one of
// Proxy's subtype. return a list of this sub type
public static List<T> process(<T extends Proxy> proxy)
{
return new ArrayList<T>(); //just for example
}
用法:
List<ConcreteTypeOfProxy> list = process(new ConcreteTypeOfProxy());
上面的例子有編譯問題。 我認為這在邏輯上應該在java中可用,只是不確定語法是什么
//Any array that extends T
public static <T extends Proxy> List<T> process(T proxy)
{
return new ArrayList<T>(); //just for example
}
//Returns array that has T type of parameter
public static <T> List<T> process(T proxy)
{
return new ArrayList<T>(); //just for example
}
//Returns a map of generic type which you define in the method
public static <T, E extends Proxy> Map<T, E> process(T key, E value)
{
Map<T, E> map = new HashMap<T, E>();
map.put(key, value);
return map;
}
您不需要任何方法,因此您不需要任何參數來執行此操作:
List<ConcreteTypeOfProxy> list = new ArrayList<>();
記住: ArrayList<ConcreteTypeOfProxy>
和ArrayList<AnyOtherType>
之間沒有區別:它只是一個ArrayList
。
type參數只是編譯器檢查添加內容類型的指令 - 僅在編譯時 - 並自動轉換從列表中獲取的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.