RFR: 8023681: Fix raw type warning caused by Sink
Brian Goetz
brian.goetz at oracle.com
Fri Aug 23 21:44:45 UTC 2013
Because non-capturing lambdas are *already* constants! The commonly
used trick, that was needed with inner classes to avoid instantiating
multiple instances of essentially identical objects:
static final Comparator<String> c = new Comparator() { ... }
is effectively implemented automatically (and lazily, instantiated only
on first use) by the language runtime for non-capturing lambdas. So the
"extract into a static" trick can be relegated to the scrap heap of
"optimizations that don't optimize but still crap up your code".
And, since the method castingIdentity() returns a constant, it will be
routinely inlined into a constant load.
On 8/23/2013 5:18 PM, Ali Ebrahimi wrote:
> Why not to make castingIdentity method a constant?
>
>
> On Fri, Aug 23, 2013 at 11:47 PM, Henry Jen <henry.jen at oracle.com> wrote:
>
>> Hi,
>>
>> Please kindly review the fix for eliminate some warnings in
>> java.util.stream package.
>>
>> Chained Sink is an internal implementation detail, add the type for
>> downstream is more precise but verbose.
>>
>> Included is also a couple other warnings cleanup.
>>
>> http://cr.openjdk.java.net/~henryjen/tl/8023681.0/webrev/
>>
>> Cheers,
>> Henry
>>
>>
More information about the core-libs-dev
mailing list