Method references with types [Re: lambda syntax tutorial]
Stephen Colebourne
scolebourne at joda.org
Thu Aug 5 15:59:40 PDT 2010
The complete set of conversions would be:
// automatic SAM conversion to instance method from an expression
str#length()
assignable to
interface IntProducer { int get(); }
// automatic SAM conversion to instance method
String#length()
assignable to
interface IntExtractor { int get(String); }
// automatic SAM conversion to static method
String#valueOf(int)
assignable to
interface IntFactory { String get(int); }
// automatic SAM conversion to constructor
Integer#l(String)
assignable to
interface IntegerFactory { Integer get(String); }
// automatic reflected method conversion
java.lang.reflect.Method m = String#length();
// automatic reflected constructor conversion
java.lang.reflect.Constructor<Integer> c = Integer#l(String);
// automatic reflected field conversion
java.lang.reflect.Field f = Person#lsurname;
// automatic invokedynamic conversion
java.dyn.MethodHandle mh = String#length();
as described in FCM https://docs.google.com/Doc?id=ddhp95vd_6hg3qhc
many moons ago.
Stephen
On 5 August 2010 22:59, Paul Benedict <pbenedict at apache.org> wrote:
> // automatic SAM conversion
> Arrays.sortBy(strings, String#length());
>
> // automatic reflected method conversion
> java.lang.reflect.Method m = String#length();
>
> // automatic invokedynamic conversion
> java.dyn.MethodHandle mh = String#length();
>
> Paul
>
>
More information about the lambda-dev
mailing list