Re: RFR[8238286]: 'Add new flatMap stream operation that is more amenable to pushing’
forax at univ-mlv.fr
forax at univ-mlv.fr
Thu Jun 25 21:46:08 UTC 2020
----- Mail original -----
> De: "Daniel Fuchs" <daniel.fuchs at oracle.com>
> À: "Remi Forax" <forax at univ-mlv.fr>, "Patrick Concannon" <patrick.concannon at oracle.com>
> Cc: "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Jeudi 25 Juin 2020 11:28:00
> Objet: Re: RFR[8238286]: 'Add new flatMap stream operation that is more amenable to pushing’
> Hi Rémi,
Hi Daniel,
>
> On 25/06/2020 00:32, Remi Forax wrote:
>> I get that you want to keep Consumer<R> instead of Consumer<? super R> because
>> Consumer<? super R> is not a valid target type for a lambda, but the BiConsumer
>> should be able to take a ? super Consumer<R> instead of just Consumer<R>.
>
> Though I don't dispute that a strict application of the rules of
> covariance and contravariance would require to design a signature
> that accepts a `? super Consumer<R>` - how would you implement a
> BiConsumer with a signature that doesn't take a Consumer<R>?
>
> Such an implementation would be unable to push anything downstream
> without having to cast back the consumer to Consumer<R>.
if i have already have a BiConsumer<Consumer<Object>, Object>, i would like to be able to call Stream<String>.mapMulti() with that bi-consumer as argument.
>
> My personal preference would be to vote in favor of the simpler
> signature - which IMO is more readable and easier to understand.
>
> best regards,
regards,
Rémi
>
> -- daniel
More information about the core-libs-dev
mailing list