Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

239
Vistas
¿Cómo puede una interfaz Stream extender la interfaz de flujo base que tiene límites de tipo al igual que la interfaz de flujo, es decir, Stream <T>?

Estaba revisando la documentación de Streams y observé que Stream es una interfaz escrita que extiende Base Stream con tipos como T y nuevamente Stream <T>

 public interface Stream<T> extends BaseStream<T,Stream<T>> { }

¿Cómo puede una interfaz Stream extender la interfaz de flujo base que tiene límites de tipo al igual que la interfaz de flujo, es decir, Stream <T> ?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

¿Por qué no podría?

Este es un truco que se usa en muchos lugares, por ejemplo, enumeraciones, que se definen como:

 public abstract class Enum<E extends Enum<E>>

La idea general es establecer un parámetro de tipo que represente su propio tipo .

Es por eso que la letra de ese parámetro es S. Eso significa "Self".

Por lo tanto, si observamos DoubleStream , se define como:

 public interface DoubleStream extends BaseStream<Double, DoubleStream> {}

El punto de hacer esto es para los métodos de 'retorno automático', o al menos, para los métodos que necesitan devolver el mismo tipo. Hay muchos de ellos en el concepto de flujo, como peek , limit o onClose .

Podría simplemente... no hacer eso, y definir las cosas de la siguiente manera:

 public interface BaseStream<T> { BaseStream parallel(); }

Pero el problema es que esto degrada los tipos. Si tengo un IntStream e invoco .parallel() en él, el compilador cree que el tipo es BaseStream . Por lo general, esto no es relevante (en el sentido de que IntStream puede ajustar el tipo de retorno, eso es válido según Java Lang Spec), pero a veces lo es.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda