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

Reply via email to