Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

230
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!