Diseño de interfaz para entidad jerárquica

Tengo que diseñar una interfaz para la entidad jerárquica:

interface HierarchicalEntity<T extends HierarchicalEntity<T>> {
    T getParent();
    Stream<T> getAncestors();
}

Es bastante fácil de implementar.defecto getAncestors() método en términos degetParent() de tal manera que el primero regresaríaStream de todos los antepasados.

Ejemplo de implementación:

default Stream<T> getAncestors() {
    Stream.Builder<T> parentsBuilder = Stream.builder();
    T parent = getParent();
    while (parent != null) {
        parentsBuilder.add(parent);
        parent = parent.getParent();
    }
    return parentsBuilder.build();
}

Pero también necesito incluirthis en la corriente, y aquí aparece un problema. La siguiente línea no es correcta porquethis es de tipoHierarchicalEntitynoT:

parentsBuilder.add(this); // type mismatch!

¿Cómo puedo rediseñar la interfaz para hacergetAncestors() incluirthis en el resultado?

Respuestas a la pregunta(3)

Su respuesta a la pregunta