Java泛型返回参数类型的泛型列表
我想创建以下内容:Java泛型返回参数类型的泛型列表,java,generics,Java,Generics,我想创建以下内容: //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 } //从参数
//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
}
//从参数推断类型,但将其限制为以下类型之一
//代理的子类型。返回此子类型的列表
公共静态列表进程(代理)
{
返回新的ArrayList();//仅举个例子
}
用法:
List<ConcreteTypeOfProxy> list = process(new ConcreteTypeOfProxy());
List List=process(新的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;
}
公共静态列表进程(T代理)
{
返回新的ArrayList();//仅举个例子
}
//返回具有T类型参数的数组
公共静态列表进程(T代理)
{
返回新的ArrayList();//仅举个例子
}
//返回在方法中定义的泛型类型的映射
公共静态映射过程(T键,E值)
{
Map Map=newhashmap();
map.put(键、值);
返回图;
}
执行此操作不需要任何方法,因此也不需要任何参数:
List<ConcreteTypeOfProxy> list = new ArrayList<>();
List List=new ArrayList();
记住:ArrayList
和ArrayList
之间没有区别:它只是一个ArrayList
type参数只是一条指令,用于编译器检查所添加内容的类型(仅在编译时),并自动转换从列表中获得的值。应该是
公共静态列表进程(T proxy)
确定。我必须在返回类型之前添加类型限制。收到了,谢谢。但是请注意,上面的内容不适用于List List=process(new SubscriberProxy())
用法(因为t
对于返回列表类型和方法参数必须相同)。所以它应该是List=process(newconcreteTypeOfProxy())代码>(或者两者都必须是SubscriberProxy
)谢谢,但既然欧内斯特先回答了,我就把它给他:)是的,我同意事实上我没有看到评论,我只是在IDE中键入代码,然后发布到这里。:)我不清楚为什么这比直接使用new ArrayList()
更好。我已经添加了map的示例,我知道这就是为什么我提到我在方法中所做的只是一个示例。这将作为api公开,我将在该方法中做额外的工作。:)