首先,我在 Java 方面的经验很少。
谈到我的问题,我正在用我自己的方法实现我自己的列表。
public class MyList<E> implements List<E>{
private Node<E> head;
private static class Node<E> {
private E element;
.....
}
现在,这个类中有一个方法可以将此列表与给定的列表进行比较:
public boolean equals(List<E> list){
....
}
要启动此方法,首先我们必须获取列表的头部,然后我可以访问元素并比较列表。
现在,我们没有 getHead() 方法。因此,我们尝试在实现类中创建以下方法
public Node<E> getHead(){
编译器找不到该符号。当然,我们需要先在接口中声明它。问题是,如果我们尝试这样做,接口不知道 Node 是什么。所以我在这里陷入僵局。
我得到错误:
Cannot find symbol
symbol : method getHead()
location: interface List<E>
Node<E> lhead = list.getHead();
我希望它使 getHead 成为特定于实现的方法。我怎么做?
请问,能否把implementation中的internal class移到interface中?不知道如何解决这个问题,
谢谢你的时间