提问人:Tanner01 提问时间:1/26/2020 最后编辑:BohemianTanner01 更新时间:1/26/2020 访问量:139
当使用ArrayList(Collection<?扩展E>c)作为复制构造函数时,我收到两个错误
When using ArrayList(Collection<? extends E> c) for a copy constructor I get two errors
问:
public ListArrayListBased(ListArrayListBased < E > var)
{
items = new ArrayList < E> (ArrayList(ListArrayListBased
< ? extends E > var));
}
使用这行代码给了我两个错误。
- 此位置不允许使用通配符。
- 令牌“ListArrayListBased”上的语法错误,::在令牌之后。
我能够通过在 ListArrayListBased 之后放置 :: 来修复第二个问题,但我不知道它做了什么或它是如何工作的。我正在寻找更多的错误解释,然后是问题的解决方案。谢谢!
答:
0赞
Andy Turner
1/26/2020
#1
这是一个复制构造函数,您正在尝试分配成员变量,该变量可能是类中的列表。items
因此,请从以下位置复制列表:items
var
items = new ArrayList<>(var.items);
上一个:如何安全地复制收藏夹?
评论
items
items = new ArrayList<>(var);
var
ArrayList(ListArrayListBased< ? extends E > var)
var