Java 如何将泛型参数绑定到特定的列表子类?
我希望在下面的代码中:Java 如何将泛型参数绑定到特定的列表子类?,java,generics,Java,Generics,我希望在下面的代码中: public static <K, D extends List<T>, T> List<Map<K, D>> meth(K k, D d) { List<Map<K, D>> daBytes = (List<Map<K, D>>) new ArrayList<Map<K, List<List<Byte>>&g
public static <K, D extends List<T>, T> List<Map<K, D>> meth(K k, D d) {
List<Map<K, D>> daBytes = (List<Map<K, D>>)
new ArrayList<Map<K, List<List<Byte>>>>();
// ...
}
公共静态列表方法(K,D){
列表数据字节=(列表)
新的ArrayList();
// ...
}
用于确定
D
是列表和/或T
是D
的编译器由meth
的调用方指定;你不能强迫它成为meth
中的其他特定类型。如果你所说的D
是指List
,那么你应该这样写:
List<Map<K, List<List<Byte>>>> daBytes = new ArrayList<Map<K, List<List<Byte>>>>();
我明白了-D
可以是列表
或列表
-参见代码。所以我知道它一定是一个列表-?
是没有用的,因为它不能被操纵,无论如何我需要将它指定给一个特定的类型。不管怎样,我可以做我想做的事(问题2)?不,你不能真的那样做你想做的事。你可以做ArrayListapparly我不是唯一一个考虑这个功能的人:
List<Map<K, D>> daBytes = new ArrayList<Map<K, D>>();