listeners and lambda method reference
Remi Forax
forax at univ-mlv.fr
Tue Feb 10 18:19:46 UTC 2015
Hi Sebastian, Hi Maurizio,
On 02/10/2015 06:18 PM, Maurizio Cimadamore wrote:
> Hi Sebastien,
> the identity of an instance obtained through capture is 'unreliable'.
> In case of method references is not unthinkable considering adding an
> equals() implementation which takes into account all the parameters to
> the bootstrap method used to forge a new instance of the functional
> interface, but that's not how things work now.
changing a lambda to an equivalent method ref and vice versa should be
possible without thinking too much,
captured values can be not accessible to the lambda proxy (if they are
inserted into the method handle),
and debugging auto-generated equals/hashCode is not fun at all ...
> An alternative way to express the idiom now is:
>
> Listener l = this::propertyChanged;
>
> ...
>
> property.addListener(l);
> ...
>
> property.removeListener(l);
>
> Which will do what you expect (as there's only one capture there).
yes,
>
> Maurizio
Rémi
More information about the lambda-dev
mailing list