List<Integer> ints = Arrays.asList(1,2,3,4,5);
List<Double> doubles = Arrays.asList(226.6131 , 7789879.3 );
List<Long> longs = Arrays.asList( 687643643687L , 743926945627L );
List<List<?>> lists = Arrays.asList(ints, doubles , longs); // Type mismatch: cannot convert from List<List<? extends Number&Comparable<?>>> to List<List<?>>
List<List<? extends Number & Comparable<?>>> lists = Arrays.asList(ints, doubles , longs); // Syntax error on token "&", , expected
我正在尝试创建一个列表列表,如上面的代码所示。首先我有 3 个列表,每个列表都存储 extends Number implements Comparable
的元素。接下来我想将这 3 个列表放入另一个 List 中,但我无法做到这一点。
List<List<?>> lists = Arrays.asList(ints, doubles , longs);
此行给出编译器错误,指出无法从 List<List<? extends Number&Comparable<?>>>
转换为 List<List<?>>
。
当我尝试修改下一行中的引用类型时,出现语法错误。
如何将上面的 3 个列表( ints
、 doubles
和 longs
)放入另一个 List<>
中?
编辑:相关问题:
声明扩展 List
AND List
的元素的 Number
的正确语法是什么?
最佳答案
我相信你想要这样的东西:
List<? extends List<?>> lists = Arrays.asList(ints, doubles , longs);
您可以使用此表单来提高类型安全性:
List<? extends List<? extends Number>> lists = Arrays.<List<? extends Number>>asList(ints, doubles , longs);
关于java - 通用列表创建时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8693911/