簡體   English   中英

Java泛型返回參數類型的通用列表

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

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