繁体   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