> De: "Christopher Smith" <chry...@gmail.com>
> À: "dev" <dev@groovy.apache.org>
> Envoyé: Jeudi 29 Avril 2021 19:38:27
> Objet: Re: () call-type syntax for functional interfaces?

> Also an object implementing multiple functional interfaces. In dynamic mode, 
> you
> wouldn't know which method to invoke.

if that object is a lambda proxy, i.e. an object created by a Java lambda, the 
only way to implement several functional interfaces is to have default methods, 
those methods are defined in their respective interfaces, not in the lambda 
class. 

You can have several methods in the lamba proxy class either because you have 
method of java.lang.Object (equals/hashCode/toString) or because of the way 
generics are implemented. 
Because of erasure, you can have a bridge method alongside the method that 
calls the lambda body, 
but in that case, selecting the method with the most specific return type and 
the less specific parameter types is enough. 

Rémi 

> On Thu, Apr 29, 2021, 12:34 Jochen Theodorou < [ mailto:blackd...@gmx.org |
> blackd...@gmx.org ] > wrote:

>> On 29.04.21 15:32, Christopher Smith wrote:
>> > Sure, this is theoretically possible (though many functional interfaces
>> > aren't annotated), but the convenience I'm asking about would have to be
>> > compile-time, because it would depend on the declared type (which is
>> > part of why I suspect it might not even make semantic sense in the
>> > underlying dynamic model).

>> why does it have to be compile time only? I don't quite get that. The
>> problem you have to face is of course an Object, which realizes a
>> functional interface, but also has a call method (not part of the interface)

>> bye Jochen

Reply via email to