Jochen,

thanks a lot, nice trick!

If you can spare a moment, might you perhaps check my “static propertyMissing 
in an interface” message of yesterday? The question is whether the approach one 
can rely on to remain in future Groovy versions; that it works all right in 
current ones I have tested :)

Thanks and all the best,
OC

On 2. 4. 2016, at 19:19, Jochen Theodorou <[email protected]> wrote:

> On 01.04.2016 21:38, OC wrote:
> [...]
>> ===
>> class Foo {
>>   static instance=newInstance()
>> }
>> class Bar extends Foo {
>>   static instance=newInstance()
>> }
>> ===
>> 
>> it works like a charm, only -- unlike @Singleton -- it is not lazy (and if 
>> turned to lazy, it would not be threadsafe).
> 
> there is an easy Java trick for lazy:
> 
> class Foo {
>  static getInstance() {
>    return Inner.instance
>  }
>  private Foo(){}
>  private static class Inner {
>     final static instance = new Foo()
>  }
> }
> 
> The trick is that the inner class is only loaded if getInstance is called, 
> thus you get lazy behaviour, that is even thread safe.
> 
> bye Jochen
> 

Reply via email to