RFR (2nd): 8015318: Extend Collector with 'finish' operation
Henry Jen
henry.jen at oracle.com
Tue Aug 6 22:35:18 UTC 2013
On 08/06/2013 10:06 AM, Mike Duigou wrote:
> Looks OK. A few minor non-blocking comments:
>
> DelegatingStream::
>
> - I wonder if an extends wildcard might also be included on R
>
I will include this change in the push if passes all tests.
diff --git a/src/share/classes/java/util/stream/DelegatingStream.java
b/src/share/classes/java/util/stream/DelegatingStream.java
--- a/src/share/classes/java/util/stream/DelegatingStream.java
+++ b/src/share/classes/java/util/stream/DelegatingStream.java
@@ -209,7 +209,7 @@
}
@Override
- public <R, A> R collect(Collector<? super T, A, R> collector) {
+ public <R, A> R collect(Collector<? super T, A, ? extends R>
collector) {
return delegate.collect(collector);
}
diff --git a/src/share/classes/java/util/stream/ReferencePipeline.java
b/src/share/classes/java/util/stream/ReferencePipeline.java
--- a/src/share/classes/java/util/stream/ReferencePipeline.java
+++ b/src/share/classes/java/util/stream/ReferencePipeline.java
@@ -490,7 +490,7 @@
}
@Override
- public final <R, A> R collect(Collector<? super P_OUT, A, R>
collector) {
+ public final <R, A> R collect(Collector<? super P_OUT, A, ? extends
R> collector) {
A container;
if (isParallel()
&&
(collector.characteristics().contains(Collector.Characteristics.CONCURRENT))
diff --git a/src/share/classes/java/util/stream/Stream.java
b/src/share/classes/java/util/stream/Stream.java
--- a/src/share/classes/java/util/stream/Stream.java
+++ b/src/share/classes/java/util/stream/Stream.java
@@ -657,7 +657,7 @@
* @see #collect(Supplier, BiConsumer, BiConsumer)
* @see Collectors
*/
- <R, A> R collect(Collector<? super T, A, R> collector);
+ <R, A> R collect(Collector<? super T, A, ? extends R> collector);
/**
* Returns the minimum element of this stream according to the provided
> ReduceOps::
>
> - It is not clear in makeRef why collector.accumulator() wouldn't also benefit from a Objects.requireNonNull
>
The check is only against collector. We probably should have those
checked in collector already.
> General::
>
> - Is there a constant immutable EnumSet for the Collector.Characteristics.IDENTITY_FINISH ? It would be nice to avoid creating lots of EnumSet instances.
>
We create new EnumSet when needed to combine with incoming
characteristics; otherwise, the same set is returned.
Cheers,
Henry
More information about the core-libs-dev
mailing list