Re: RFR[8238286]: 'Add new flatMap stream operation that is more amenable to pushing’
Remi Forax
forax at univ-mlv.fr
Thu Jun 25 22:12:22 UTC 2020
----- Mail original -----
> De: "Remi Forax" <forax at univ-mlv.fr>
> À: "Daniel Fuchs" <daniel.fuchs at oracle.com>
> Cc: "Patrick Concannon" <patrick.concannon at oracle.com>, "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Jeudi 25 Juin 2020 23:46:08
> Objet: Re: RFR[8238286]: 'Add new flatMap stream operation that is more amenable to pushing’
> ----- 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.
and obviously, i got it wrong, Consumer<Object> is not a super-type of Consumer<String>, it should be a BiConsumer<Consumer<?>, Object> or a BiConsumer<? super Consumer<String>, Object>, etc.
>
>>
>> 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