【发布时间】:2017-04-19 10:29:54
【问题描述】:
我正在尝试将 String 列表转换为 Double 列表,如下所示:
List<String> myStringList = Arrays.asList("10.0", "10.5", "5.0");
List<?> myDoubleList = new ArrayList();
for(String s : myStringList){
myDoubleList.add(Double.parseDouble(s));
}
当我从列表描述中删除 <?> 时,它可以工作。但是,当我添加它时它会中断。它给了我这个错误:
List 类型中的方法 add(capture#6-of ?) 不是 适用于参数(双)
为什么会这样?
【问题讨论】:
-
见:stackoverflow.com/questions/2745265/… 这不是骗人的,但上面的答案说明了问题。
-
顺便说一句,像这样声明列表: List
-
为什么不是
List<Double>? -
@AlexeyRomanov 因为我需要一个泛型类型来避免以后的代码重复。
-
@SpiderRico 从您的问题中不清楚
List<?>将如何“避免以后重复代码”,但myDoubleList的类型不能完全通用,因为它需要支持向其添加双打.除了List<Double>,您还希望使用什么类型的列表?