On 6/21/2018 12:33 AM, Tagir Valeev wrote:
Please review and sponsor:

https://bugs.openjdk.java.net/browse/JDK-8205461
http://cr.openjdk.java.net/~tvaleev/webrev/8205461/r1/

See also previous discussion thread at [1]. It seems that we did not reach
the final conclusion about the collector name, so in this review it's still
named as "pairing" (proposed by me). Other name proposals:

None of the names so far are great.  The essential challenge in naming here is that this Collector does two (or maybe three) things: duplicate the stream into two identical streams ("tee"), sends each element to the two collectors ("collecting"), and then combines the results ("finishing").  So all the one-word names (pairing, teeing, unzipping, biMapping) only emphasize one half of the operation, and names that capture the full workflow accurately (teeingAndCollectingAndThen) are unwieldy.

Of the three phases, teeing is the most important and least obvious, so I think something that includes that in the name is going to be helpful.  Perhaps "teeingAndThen" is more evocative and not totally unwieldy.

Names along the lines of "merging" may incorrectly give the idea that the merge is happening elementwise, rather than duplicating the streams, collecting, and merging the results.

By the way looking into CollectorsTest.java I found some minor things to
cleanup:
1. `.map(mapper::apply)` and `.flatMap(mapper::apply)` can be replaced with
simple `.map(mapper)` and `.flatMap(mapper)` respectively
Does IntelliJ have an inspection for eliminating such locutions?
2. In many methods redundant `throws ReflectiveOperationException` is
declared while exception is never thrown
For test code where a significant fraction of test cases are going to throw something, we often do this, since its easier to just uniformly tag such methods rather than thinking about which test methods actually throw the exception and which don't.  So I think this is harmless (though cleaning it up is harmless too.)


You may want to optimize the EnumSet mechanics for the case where neither collector has interesting characteristics.


Reply via email to