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