Интерфейс Java Generics со списком


Дикие символы

Как написать дженерик-интерфейс со списком реализованных классов интерфейса?

Я столкнулся с этой проблемой, когда пишу интерфейс узла дерева, вот детали проблемы: мне нужно создать интерфейс для следующих двух классов, как написать интерфейс?

public class TreeNode<T> {

    private T data;

    private List<TreeNode<T>> children;

    public T getData() {
        return this.data;
    }

    public List<TreeNode<T>> getChildren() {
        return this.children;
    }
}

public class DoubleLinkedTreeNode<T> {

    private T data;

    private List<TreeNode<T>> children;

    private DoubleLinkedTreeNode<T> parent;

    public T getData() {
        return this.data;
    }

    public List<DoubleLinkedTreeNode<T>> getChildren() {
        return this.children;
    }
}
Вход в полноэкранный режим Выход из полноэкранного режима

Оба класса имеют методы getData и getChildren, и это методы, которые необходимо определить в интерфейсе. Однако, сложная часть заключается в том, как представить TreeNode или DoubleLinkedTreeNode в их интерфейсе? Ответ — подстановочные знаки, вот интерфейс:

public interface TreeNodeInterface<T> {
    T getData();

    List<? extends TreeNodeInterface<T>> getChildren();
}
Войти в полноэкранный режим Выход из полноэкранного режима

Вы можете посмотреть мое объяснение здесь

Оцените статью
devanswers.ru
Добавить комментарий