【发布时间】:2022-06-18 02:17:51
【问题描述】:
我有一些被赋予的功能。我无法更改参数类型的函数参数。我的问题是关于以下论点“同义词”:
public List<String> generateSentences(List<List<String>> synonyms, String text) {
ArrayList<ArrayList<String>> synTotal = new ArrayList<ArrayList<String>>(Arrays.asList("hi"));
synTotal.add(synonyms.get(0));
我创建了这个 ArrayList of Arraylist of strings、synTotal,并将数据放入其中。但是,当我尝试添加到这个创建的列表列表时,我收到以下错误:
我很困惑。我对列表的理解是列表是对象,而数组列表是对象的实现。但是列表总是需要通过正确的实现来创建(arraylist/linked list/etc)。
所以基于这个想法,我会认为参数 List 必须以某种方式实现为这些特殊实现之一。如果没有,如果 List
已经在参数中实例化,我该如何给它一个实现?
谢谢!
【问题讨论】:
-
不要将
ArrayList<ArrayList<String>>用于synTotal,使用List<List<String>>。使用菱形运算符对其进行初始化:new ArrayList<>(...)。