hg: lambda/lambda/langtools: Handle non-static method references from static context. More specifically, if f is an instance method of Z whose signature is A, B->C, then #obj.f is of type A, B->C and #Z.f is of type Z, A, B->C.

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Wed Aug 4 07:54:40 PDT 2010


On 04/08/10 15:36, Kevin Bourrillion wrote:
> Hello,
>
> Does this mean that we could replace
>
>   Predicate<Employee> p = { e -> e.isPartTime() };
>
> with
>
>   Predicate<Employee> p = #Employee.isPartTime;
>
> ?  If so, very cool.
Yes, the two are the same :-)

Maurizio
>
>
>
>
> On Wed, Aug 4, 2010 at 7:13 AM, <maurizio.cimadamore at oracle.com 
> <mailto:maurizio.cimadamore at oracle.com>> wrote:
>
>     Changeset: 443eb1d3b96c
>     Author:    mcimadamore
>     Date:      2010-08-04 15:10 +0100
>     URL:
>     http://hg.openjdk.java.net/lambda/lambda/langtools/rev/443eb1d3b96c
>
>     Handle non-static method references from static context. More
>     specifically, if f is an instance method of Z whose signature is
>     A,B->C, then #obj.f is of type A,B->C and #Z.f is of type Z,A,B->C.
>
>     ! src/share/classes/com/sun/tools/javac/comp/Attr.java
>     ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java
>     ! test/tools/javac/lambda/MethodReference05.java
>     - test/tools/javac/lambda/MethodReference05.out
>     + test/tools/javac/lambda/MethodReference07.java
>     + test/tools/javac/lambda/MethodReference08.java
>     + test/tools/javac/lambda/MethodReference08.out
>     + test/tools/javac/lambda/MethodReference09.java
>     + test/tools/javac/lambda/MethodReference09.out
>
>
>
>
>
> -- 
> Kevin Bourrillion @ Google
> http://guava-libraries.googlecode.com
>



More information about the lambda-dev mailing list