On 01.04.2016 03:48, OC wrote:
Hello there,
playing with possibilities of the i/i pattern, I have found one can install a
static property to an interface, and then use the property all right -- see a
proof-of-concept below.
Since it might be used e.g. to create instances or to get a factory through
public API based on interfaces (which would otherwise not be possible without
exposing the implementation class), this is truly interesting.
The question is: can I rely on this rather arcane behaviour, that it will not
be broken in future Groovy versions?
if you want to be really sure it will continue working it is best if you
contribute a test case ;) But I see no plans to change that, especially
with java8 being able to define static methods and thus static properties.
[...]
def body={-> "<$name in $delegate>" }
delegate.metaClass.static."$getter"=body
delegate."$getter"() // I wonder why just "body()" does not work?!?
no idea why not... but you can always try body.call() instead.
bye Jochen