java - 通用列表创建时出现问题

标签 java list generics

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 个列表( intsdoubleslongs )放入另一个 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/

相关文章:

java - 如何从ZK页面调用后端方法?

Java:检测打开的 PowerPoint 文件并确定其路径

python - 如何在 Python 中并行检查多个列表中是否存在某个项目?

swift - 具有通用委托(delegate)的通用类。如何区分哪个对象的委托(delegate)正在执行回调?

java - 返回 IModel<?> 和 <M> IModel<M> 有什么区别?

java - 静态字段的 JUnit 初始化

java - 按住按钮时对多个节点进行 MouseDragged 检测 JavaFX

c - 结构指针分配未分配预期值 - 链表

Python:为什么这个列表列表包含引用而不是副本?

java - 如何在不使用 setter 的情况下将值设置为类变量