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....@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


Reply via email to