在接口方法中返回子类

Returning subclass in an interface method

我想做一个链表项目,我在其中创建了一个接口和一个 class

CLASS:

  public class MainNode<T> implements Node<T>
    {
        public T data;
        public MainNode<T> next;
        public MainNode<T> nextIs()
        {
            return next;
        }
    }.           //all other methods are defined and work fine

接口:

public interface Node<T>
{
    public SUB_CLASS_RETURN_TYPE nextIs();
}         //all other methods are declared as needed

问题:问题是SUB_CLASS_RETURN_TYPE应该写什么到return对象或derived/sub的引用class

你能做的就是使用泛型

public interface Node<N extends Node<N>> {
    public N nextLs();
}

public class MainNode implements Node<MainNode> {
    @Override
    public MainNode nextls() {
        ...
    }
}