Method reference conversion

Uther uther.ii at gmail.com
Thu Dec 15 23:28:50 PST 2011


> On Dec 15, 2011, at 4:10 PM, Brian Goetz wrote:
>
> Most likely outcome: no guarantees (such guarantees come with a cost) but it
> is "highly likely" that method1 == method2. When we finish the implementation
> of functional interface conversion we'll have a update.
So Method reference are not really suited to Liseners. I think it's a 
shame since it was a really good use case of method reference.


On 16/12/11 07:00, Howard Lovatt wrote :
> It would be nice if they were equal() even if !=
>
> On 16 December 2011 13:08, Brian Goetz<brian.goetz at oracle.com>  wrote:
Since the behaviour of equals is redefined in every class, I don't think 
it is possible.

It may be possible to have a special attribute .methodReference (like 
".length" or ".class", I don't know the official name) returning a 
Method object if the reference was set by reference conversion, null 
otherwise.
Methods like "removeListener" would not work out of the box, but It 
might be updated to support method references.

for exemple:

Runnable method1 = this::myMethod;
Runnable method2 = this::myMethod;
System.out.println(method1.methodReference.equals(method2.methodReference); //returns true




More information about the lambda-dev mailing list