【发布时间】:2020-01-26 02:32:47
【问题描述】:
public ListArrayListBased(ListArrayListBased < E > var)
{
items = new ArrayList < E> (ArrayList(ListArrayListBased
< ? extends E > var));
}
使用这行代码会给我两个错误。
- 此位置不允许使用通配符。
- 标记“ListArrayListBased”上的语法错误,:: 应在标记之后。
我能够通过在 ListArrayListBased 之后放置 :: 来修复第二个,但我不知道它做了什么或它是如何工作的。我正在寻找更多关于错误的解释,然后是问题的解决方案。谢谢!
【问题讨论】:
-
我不确定你想在这里做什么。如果您只希望
items成为您的列表参数的副本,请使用items = new ArrayList<>(var);。 (此外,var是 Java 10 的语言关键字,因此您需要避免将其用作变量名。) -
ArrayList(ListArrayListBased< ? extends E > var)应该是什么?这不是方法调用。或方法声明。或者演员表。或者我能想到的任何其他东西。 -
当我使用 items = ArrayList(var) 时出现错误,“构造函数 ArrayList(ListArrayListBased)
未定义。 -
顺便说一句,不要命名变量
var。除了它是一个非常模糊的名称之外,它还是 Java 11+ 中的一个(某种)关键字。
标签: java arraylist copy-constructor containment