常见问题 - 项目 1A:链表双端队列 61B
我遇到了"必修 Type 是 Deque61B but provided 是 …"错误
可能有两个问题。请确保您没有意外导入java.util.*(或java.util.LinkedList或java.util.ArrayList)。另一个可能的问题出现在您的类签名中。
IntelliJ提示"The method … of type LinkedListDeque61B has the same erasure as … of type Deque61B but does not override it."
您可能是在类的implements行中忘记了泛型
T
(即您写的是
implements Deque61B
而不是
implements Deque61B<T>
)。如果您使用了其他泛型类型参数,请使用那个代替。
问:如何让箭头指向数据结构的特定字段?
在课堂上,您看到的箭头似乎指向数组的中间或节点的特定字段。
答:我在课堂上画的任何指向对象的箭头,都是指向整个对象,而不是对象的特定字段。实际上在Java中,引用不可能指向对象的字段。
问:OOB是什么意思?
越界(Out of bounds)。
问:我的测试在本地通过了,但Gradescope提示"空指针异常: Cannot invoke java.lang.Iterable.iterator() because this.actual 是 null"
这可能是由于在您的
toList
方法中返回了null。请确保toList始终返回一个
ArrayList
,即使双端队列为空。
问:我收到样式错误:"类 member field 'val' may not be public"
这意味着您有一个公共成员字段名为
val
。在本课程中,我们不允许公共字段。相反,您应该将字段设为private,并提供getter方法(以及可能的setter方法)代替。