我想一個字符串列表轉換爲雙榜如下:爲什麼將<?>添加到List聲明會導致從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));
}
當我從列表中移除說明中的<?>
,它的工作原理。但是,當我添加它時會中斷。它給了我這個錯誤:
The method add(capture#6-of ?) in the type List is not applicable for the arguments (double)
這是爲什麼?
請參閱:http://stackoverflow.com/questions/2745265/is-listdog-a-subclass-of-listanimal-why-arent-javas-generics-implicitly-p它不是一個笨蛋,但最重要的答案解釋問題。 –
順便說一句,聲明這樣的列表:列表
爲什麼不是'列表'? –