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