java - 是否可以拥有通用集合的集合?

标签 java

我正在编写一些需要处理任意数量的 double 列表的代码。但是,尽管我可以声明 List<List<Double>> 类型的函数参数我在创建实际实例时遇到问题,因为我需要创建具体类的实例,例如 ArrayList

我试过了

List<? extends List<Double>> inputs = new ArrayList<List<Double>>();
inputs.add(new ArrayList<Double>());

List<? extends List<? extends Double>> inputs = new ArrayList<List<Double>>();
inputs.add(new ArrayList<Double>());

但在这两种情况下,调用 add() 时都会出现编译错误说该方法不适用于 ArrayList<Double> 类型的参数

这行得通

List<List<Double>> inputs = new ArrayList<List<Double>>();
inputs.add((List<Double>) new ArrayList<Double>());

但是必须以这种方式使用转换有点丑陋。有没有更好的方法?

最佳答案

您可以省略强制转换,因为这个完全有效。每个 ArrayList 都是一个列表。

List<List<Double>> inputs = new ArrayList<List<Double>>();
inputs.add(new ArrayList<Double>());

关于java - 是否可以拥有通用集合的集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6254920/

相关文章:

java - 覆盖 Java System.currentTimeMillis 以测试时间敏感代码

java - RecyclerView崩溃

java - ReentrantLock 实际使用 lockInterruptibly

java - 为什么可能 arrayList 只显示一个字符串?

java - 为什么非strictfp模式下的转换被认为是丢失信息的转换?

java - 未找到泽西端点

Java 正则表达式提取捕获组(如果存在)

Java 堆空间崩溃 Solr 查询

java - 当使用 "bundle"打包时,maven-bundle-plugin 目标被执行两次

java - 如何以正确的方式将 Action 监听器添加到 JList?