我正在编写一些需要处理任意数量的 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/